gpt4 book ai didi

java - 使用 JPA ManytoOne 从父表中检索字段

转载 作者:行者123 更新时间:2023-12-01 11:11:17 25 4
gpt4 key购买 nike

假设我有两个表 t_document 和 t_employee。表t_document 有两个字段,id 和owner_id,其中owner_id 与t_employee 具有外键关系。表 t_employee 有两个字段,id 和 name。我的困境是,如何设置 JPA 实体(使用版本 1.x),以便以下 NamedNativeQuery 获取文档以及所有者的姓名并正确填充该实体?

SELECT d.id, e.name
FROM t_document d
JOIN t_employee e ON d.owner_id = e.id;

对于初学者来说,我已经介绍了 Document 类的基本开始内容。

@Entity
@Table(name = "T_DOCUMENT")
public class Document
{
private static final long serialVersionUID = 1L;

@Id
@Column(name = "ID", nullable = false)
private Integer id;

}

最佳答案

根据关系(我假设 OneToMany 作为一个员工可以拥有多个文档),您可以按如下方式设计您的类:

@Entity
@Table(name="T_EMPLOYEE")
public class Employee {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID")
private long id;

@Column(name="NAME")
private String name;

@OneToMany(mappedBy="employee")
Collection<EmployeeDocument> documents = new ArrayList<>();
}


@Entity
@Table(name="T_DOCUMENT")
public class EmployeeDocument {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID")
private long id;

@ManyToOne
@JoinColumn(name="OWNER_ID")
private Employee employee;
}

这应该能满足您的目的。

关于java - 使用 JPA ManytoOne 从父表中检索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335364/

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