java - 在没有 JPQL 的情况下连接两个表
问题描述
我必须以多对一的关系对 MySQL 表 TICKET-是父表和 USER-是子表。
=TICKET=
PK(ID)
summary
message
FK(user_id) references USER(user_id)
=USER=
PK(ID)
email
password
和 JPA 实体
@Entity
class TICKET {
@Id
private Integer ID;
private String summary;
private String message;
@ManyToOne
@JoinColumn(name="user")
private USER user;
}
@Entity
class USER {
@Id
private Integer ID;
private String email;
private String password;
}
如果我通过 ID 进行查询以获取票证,它还将返回不好的用户信息(USER.ID、USER.email、USER.password)。
ticketsCrudRepository.findById(ticketId);
我想要的是得到一个看起来像这样的表:
TICKET.ID | summary | message | USER.email
我知道如何在 MySQL 中做到这一点,但 JPA 对我来说意义重大。我不想使用 JPQL 或本地查询语言。有什么建议么?
解决方案
我一直在寻找的解决方案是 Spring Data JPA Projections。它们可以是具有与您要从数据库中获取的列相匹配的 getter 的接口或类。有关详细信息,请查看此处的 Spring Framework 文档。
推荐阅读
- azure - apim 调用函数应用的部署脚本
- java - 填写用户类时出现 ClassCastException 错误
- javascript - 如何在 jsx 中渲染字符串在对象数组上使用 reduce
- mysql - MySQL 获取当前 + N 前几个月
- java - Java:将使用服务器公钥加密的随机对称密钥发送到该服务器是否安全?
- assembly - 将几种数据类型的数字输出到 MessageBox 会造成混乱
- tensorflow - TensorFlow 离线使用预训练模型
- django - 如何检查扩展用户模型中的重复项
- reactjs - 在堆栈导航中反应本机选项卡导航不起作用
- knockout.js - 结果在淘汰赛中重复