微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

始终保持与Hibernate的OneToOne映射连接

如何解决始终保持与Hibernate的OneToOne映射连接

我有两个实体PersonBlacklistInfo,它们之间具有OnetoOne的关系。

Person.java

@Data
@Entity
@Immutable
@Table(name = "person_tbl")
public class Person {
    @Column(name = "person_id")
    @Id
    private Long personId;
    
    // ... other members

    @OnetoOne
    @JoinColumn(name = "person_id",referencedColumnName = "person_id")
    private BlacklistInfo blacklistInfo;
}

AdditionalInfo.java

@Data
@Entity
@Immutable
@Table(name = "blacklist_info_tbl")
public class BlacklistInfo {

    @Id
    @Column(name = "person_id")
    private Long personId;
   
    // ... other members
}
BlacklistInfo

Person可以为空。目前我想找到未列入黑名单的人

我可以通过以下操作之一来进行操作:

  1. 查询所有人员并从其中删除黑名单
  2. 执行左联接查询并检查personId中的BlacklistInfo是否为空
    select p from Person p left join p.blacklistInfo where p.blacklistInfo.personId is null
    

问题是:Can I do the 2nd operation without explicitly mentioning left join the in query section? Can it be done by modifying entity relationship ?

我将hibernate-5.4.12.Finalspring-boot-2.2.x一起使用

解决方法

您还要如何查询此信息?使用JPQL / HQL做到这一点完全没问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。