SpringBootJPA查询映射到自定义实体类

更新时间:2023-06-16 18:58:38 阅读: 评论:0

rumourSpringBootJPA查询映射到⾃定义实体类
场景
举⼀个简单的栗⼦:
⽐如有⼀个Ur实体类
@Data
@Entity
fadein
public class Ur{
@Id
翻译器@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String urName;
private String password;
}
然后有⼀个Email的实体类
@Data
excessive packaging
@Entity
public class Email{2013专八
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String account;
private String code;
private boolean active;
}
以及⼀个UrRelation实体类,⽤来维护其他表与Ur之间的关联
@Data
@Entity
public class UrRelation{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long urId;
private Long emailId;
}
每个实体类都有其对应的Repository接⼝,⽤来实现CRUD。
最后有⼀个领域类UrPo
协处理器@Data
@Entity
public class UrPo{
private String urName;
private String account;
}
那么这个时候在UrRelationRepository⾥创建⼀个 findUrPo( Long urId )⽅法,如何让findUrPo可以返回⼀个UrPo对象
public interface UrRelationRepository extends JpaRepository<UrRelation, Long> {
UrPo findUrPo(Long id);河北学位英语考试
}
实现
JPA可以⾃定义SQL语句进⾏查询,然后查询语句可以通过原⽣SQL语句(原⽣SQL语句要在@Query注解⾥加 nativeQuery = true)进⾏查询也可以通过JPQL进⾏查询。
在线网站翻译这⾥通过 JPQL(Java Persistence Query Language) 进⾏查询,其特征与原⽣SQL语句类似,并且完全⾯向对象,通过类名和属性访问,⽽不是表名和表的属性。
由此findUrPo修改之后就像这样
public interface UrRelationRepository extends JpaRepository<UrRelation, Long> {
pear的音标
// 注意这⾥没有nativeQuery = true
泰坦尼克号2电影@Query(value = "SELECT x.bean.po.UrPo(u.urName, e.account) "+
"FROM UrRelation ur JOIN Ur u ON ur.urId = u.id"+
"JOIN Email e ailId = e.id WHERE ur.urId = ?1 ")
UrPo findUrPo(Long id);
}
这样就可以在查询的时候返回值⾃定义实体类了
注意上⾯的SQL语句都是⾯向对象的,对应的字段都是实体类⾥⾯的属性

本文发布于:2023-06-16 18:58:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/147289.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实体类   查询   定义   时候   语句   属性
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图