您的位置:首頁技術文章
文章詳情頁

Spring Data Jpa實現自定義repository轉DTO

瀏覽:5日期:2023-08-23 13:22:38

近期項目中需要 關聯 幾張表再把字段轉出來,在這里記錄以下,我感覺網上寫的都不太規范和清晰。

@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')@Datapublic class TestEntity { @Id private String id; private LocalTime localTime; private Integer maximumAppointment;}

需要聲明接口:

@Repositorypublic interface TestEntityRepository extends JpaRepository<TestEntity,String> { @Query(name='getTestQuery') List<TestEntity> getTestQuery(String locationId, String customId);}

若不想聲明接口,那可以用EntityManager 來實現。

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
国产综合久久一区二区三区