Spring Data Jpa实现自定义repository转DTO

2025-05-29 0 43

近期项目中需要 关联 几张表再把字段转出来,在这里记录以下,我感觉网上写的都不太规范和清晰。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30
@Entity

@SqlResultSetMapping(

name="TestMapping",

entities = {

@EntityResult(

entityClass = com.xxx.xx.data.model.TestEntity.class,

fields = {

@FieldResult(name="id",column="id"),

@FieldResult(name="localTime",column="time"),

@FieldResult(name="maximumAppointment",column="maxAppointment"),

}

)

}

)

@NamedNativeQuery(name="getTestQuery",

query="select tableC.id as id,tableB.time,tableC.maximumAppointment as maxAppointment from tableB " +

" inner join tableA on tableA.id = tableB.tableAId " +

" inner join tableC on tableB.id = tableC.tableBId " +

" inner join custom on custom.id = tableA.customId " +

"where " +

" tableA.locationId = :locationId" +

" and custom.id = :customId" +

" and tableB.deleted = false ", resultSetMapping="TestMapping")

@Data

public class TestEntity {

@Id

private String id;

private LocalTime localTime;

private Integer maximumAppointment;

}

需要声明接口:

?

1

2

3

4

5

6

7
@Repository

public interface TestEntityRepository extends JpaRepository<TestEntity,String> {

@Query(name="getTestQuery")

List<TestEntity> getTestQuery(String locationId, String customId);

}

若不想声明接口,那可以用EntityManager 来实现。

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://www.cnblogs.com/1994jinnan/p/13401320.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Spring Data Jpa实现自定义repository转DTO https://www.kuaiidc.com/118772.html

相关文章

发表评论
暂无评论