java - 如何将一对多结果映射到使用非主键连接的 Hibernate 实体?

标签 java mysql hibernate jpa

假设有两个类,经理和工程师。从概念上讲,一名工程师只能属于一名经理,一名经理可以拥有多名工程师,但示意性地讲,他们可以通过部门 ID 进行链接。但是,类之间没有外键关联。

public class Manager {
   .....
   private Long deptId; 
 } 

public class Engineer {
   .....
   private Long deptId; 
 }

以下查询在 mySQL 中有效:

从经理 m left 中选择 *,加入工程师 e on m.dept_id = e.dept_id。

它返回与经理共享同一部门的不同员工对应的多行。我无法将此查询的结果映射到实体。我想做如下的事情:

public class Manager {
   .....
   private Long deptId; 

   @OnetoMany
   private List<Engineer> engineers;
 } 

@ManytoOne@OnetoMany 注释期望使用外键进行映射,因此上述方法不起作用。还有其他方法可以实现这一目标吗?

最佳答案

您需要手动指定@JoinColumn。查看this article了解详情

关于java - 如何将一对多结果映射到使用非主键连接的 Hibernate 实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61465280/

相关文章:

mysql - Cassandra +Mysql

mysql - 只显示其他表中不存在的值

database - 无法执行 JDBC 批量更新; SQL 的未分类 SQLException

java - 关于在线扫描仪的说明

java - 获取特定文本后的字符串

java - Libgdx 在 3D 中创建天空/环境

Mysql 不正确的数据获取类似查询

java - 如果我需要在生成的 hibernate Pojo 上添加接口(interface),这是一个很好的实践

spring - Azure Databricks 日志记录配置问题

java - 命令无法正确执行