用于视图的 JPA 实体包含连接和别名
Posted
技术标签:
【中文标题】用于视图的 JPA 实体包含连接和别名【英文标题】:JPA Entity for View containig joins and aliases 【发布时间】:2022-01-19 13:37:15 【问题描述】:我有以下查询,我想使用它为我从查询中检索的列创建一个实体类。
select e.emp_id,
c.company_code,
mg.emp_id as mangaer_code
from employee e
left join company c on e.emp_id = c.emp_id
left join manager mg on e.emp_id = c.emp_id = mg.emp_id
如何从这些列创建实体类,需要哪些变量在实体类中引用这些列?
【问题讨论】:
为 intelij 安装 jpa buddy 插件它将帮助您创建实体模型,您需要改进表之间的关系问题,它们是一对一、一对多、可能对多?我猜每个表需要 3 个实体类 由于您没有提供列的类型,因此没有人可以真正帮助您,请提供更多信息 你需要一个实体类吗?它不像你可以通过实体对数据执行写操作,所以不需要管理它。查看 JPA 中的构造函数查询 - 您可以从数据构建任何 java 对象并从查询返回,而不必对其进行实体映射 - 它只需要一个接受值的构造函数。 您需要提供有关如何运行此查询的更多信息。它看起来像原生 SQL?你正在用 Hibernate/JPA 运行它吗?如果是,也许你可以看看这些答案:ONETWO 【参考方案1】:View 是基于 SQL 语句或函数的结果集的虚拟表,JPA 将其视为常规表。创建实体并使用 JPA 注释,如下所示
@Entity
@Immutable
@Table(name = "employee_view")
public class EmployeeView
//define the required columns from view here
更多详情可以参考我找到的这篇文章https://medium.com/@jonathan.turnock/exposing-subset-view-of-the-database-with-a-jpa-repository-over-rest-5b9d6e07344b
【讨论】:
以上是关于用于视图的 JPA 实体包含连接和别名的主要内容,如果未能解决你的问题,请参考以下文章