Java Hibernate:仅允许具有给定属性的实体与OneToMany关联
如果多方具有给定的属性值,是否可以签入Java Hibernate:仅允许具有给定属性的实体与OneToMany关联,java,hibernate,validation,Java,Hibernate,Validation,如果多方具有给定的属性值,是否可以签入@OneToMany或@ManyToMany关联 例如,参观讲座的学生: @Entity class Lecture implements Serializable { @Id Integer id; @OneToMany Set<Student> student; } @Entity class Student implements Serializable { @Id Integer id; Boolean
@OneToMany
或@ManyToMany
关联
例如,参观讲座的学生:
@Entity
class Lecture implements Serializable {
@Id
Integer id;
@OneToMany
Set<Student> student;
}
@Entity
class Student implements Serializable {
@Id
Integer id;
Boolean isFemale;
}
@实体
类实现可序列化{
@身份证
整数id;
@独身癖
设置学生;
}
@实体
学生实现可序列化的类{
@身份证
整数id;
她是女性;
}
我可以用一个“魔法”注释来强制执行只有女生才允许参观讲座吗?您的@OneToMany注释将执行SELECT语句。您可以使用供应商专有的注释(如@Where())过滤结果 但您似乎想限制插入大小写。您可以只使用JavaBean验证程序。因此,如果您的学生类具有反向@ManyToOne属性讲座,那么您可以创建一个验证器,该验证器拒绝链接到讲座且为女性的新学生对象。(从而实现您想要的区分)(参见bean验证:) 但您可能已经猜到,您的约束不是真正的数据库约束。SQL不可能做到这一点,所以不要指望JPA也能做到