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

多对一的 JPA 标准 API 规范

如何解决多对一的 JPA 标准 API 规范

我有两个表 Student 和 Address。一个学生可以有多个地址。 实体看起来像这样

@Entity @Table(name = "STUDENT") 
public class Student {
  @Column(name = "STUDENT_ID") Integer studentId;
  @Column(name = "FirsT_NAME") String fName;
  @Column(name = "LAST_NAME") String LName;
}

@Entity @Table(name = "ADDRESS")
public class Address {
  @Column(name = "ADDRESS_ID") Integer addressId;
  @Column(name = "STREET_NAME") String street_name;

  @ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
  @JoinColumn(name = "STUDENT_ID")
  private Student student;
}

我需要使用 JPA Criteria 来获取基于学生 fName 和 LName 的所有地址。可以是INNER JOIN,也可以是Address表的子查询

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Address> criteriaQuery = builder.createquery(Address.class);

Root<Address> fromAddress = criteriaQuery.from(Address.class);
//Can be a JOIN or Sub-Query.
em.createquery(criteriaQuery).getResultList();

要求现在只加载地址表数据。

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