【问题标题】:jpa and java bean foreignkey validationjpa 和 java bean 外键验证
【发布时间】:2014-11-12 15:09:43
【问题描述】:
我有以下用户实体:
@Entity
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
@ManyToOne
private Group group;
// Getters and setters
}
资源获取格式为{name: "abc", group: 1}的json
我可以使用@NotNull 验证用户是否为空。但我也想验证组 id 是否存在于数据库中。
最好的方法是什么。
【问题讨论】:
标签:
java
json
jpa
jax-rs
javabeans
【解决方案1】:
您必须在组的 getter 中编写一些代码。
如果 group-id 存在,getter-method 必须查找。
我不太清楚,但我很想帮忙。我认为,您必须将其声明为多对一关系。
这是一个代码解释。
示例 1:使用泛型的一对多关联
在Customer 类中:
@OneToMany(cascade=ALL, mappedBy="customer")
public Set getOrders() { return orders; }
在Order 类中:
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() { return customer; }
示例 2:不使用泛型的一对多关联
在Customer 类中:
@OneToMany(targetEntity=com.acme.Order.class, cascade=ALL,
mappedBy="customer")
public Set getOrders() { return orders; }
在Order 类中:
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() { return customer; }