gpt4 book ai didi

java - Hibernate:仅允许具有给定属性的实体进行 OneToMany 关联

转载 作者:行者123 更新时间:2023-12-02 10:35:50 24 4
gpt4 key购买 nike

如果多方具有给定的属性值,是否可以 checkin @OneToMany@ManyToMany 关联?

例如,学生参观讲座:

@Entity
class Lecture implements Serializable {
@Id
Integer id;

@OneToMany
Set<Student> student;
}

@Entity
class Student implements Serializable {
@Id
Integer id;

Boolean isFemale;
}

我可以用“神奇”的注释来强制只允许女学生参观讲座吗?

最佳答案

您的 @OneToMany 注释将执行 SELECT 语句。您也许可以使用供应商专有注释(如 @Where ( https://forum.hibernate.org/viewtopic.php?f=1&t=1026210&view=next ) 来过滤结果。

但是您似乎想限制 INSERT 情况。您可能只使用 Java bean validator 。因此,如果您的 Student 类具有反向 @ManyToOne 属性 lecture,那么您可以创建一个 validator 来拒绝新的学生对象,这些对象链接到讲座并且是女性。 (从而实现你想要的歧视)(参见bean验证:https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/validator-customconstraints.html#section-class-level-constraints)

但是您可能已经猜到您的约束不是真正的数据库约束。这对于 SQL 是不可能的,所以不要指望它可以通过 JPA 实现。

关于java - Hibernate:仅允许具有给定属性的实体进行 OneToMany 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53301632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com