Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:仅允许具有给定属性的实体与OneToMany关联_Java_Hibernate_Validation - Fatal编程技术网

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也能做到