【发布时间】:2017-05-23 05:53:34
【问题描述】:
创建实体时,它通常会收到一些自动生成的主键 int 值。我有一个名为“属性”的实体,它可以有一个相关的“参数”实体列表。
@Entity
@Table(name = "ATTRIBUTES")
public class Attribute {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "ATTRIBUTE_ID", length = 10, nullable = false)
private int id;
@Column(name = "NAME")
private String name;
@JsonIgnore
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(mappedBy = "attribute", cascade = CascadeType.ALL)
private List<Parameter> parameters;
接下来我有一个名为“参数”的实体,它需要与“属性”链接。所以当我创建一个“参数”时,我需要指定它的“属性”。 我怎么做?有什么诀窍?
@Entity
@Table(name = "PARAMS")
public class Parameter {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "PARAMETER_ID", length = 10, nullable = false)
private int id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "ATTRIBUTE_ID", referencedColumnName = "ATTRIBUTE_ID")
private Attribute attribute;
@Column(name = "VALUE")
private String value;
【问题讨论】:
-
在
Parameter实体中使用@ManyToOne(optional = false)。在这种情况下,attribute不能为空。
标签: java database hibernate spring-data spring-data-jpa