Spring Data Jpa實(shí)現(xiàn)自定義repository轉(zhuǎn)DTO
近期項(xiàng)目中需要 關(guān)聯(lián) 幾張表再把字段轉(zhuǎn)出來,在這里記錄以下,我感覺網(wǎng)上寫的都不太規(guī)范和清晰。
@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 來實(shí)現(xiàn)。
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. CentOS郵箱服務(wù)器搭建系列——SMTP服務(wù)器的構(gòu)建( Postfix )2. PHP基礎(chǔ)之生成器4——比較生成器和迭代器對(duì)象3. ASP新手必備的基礎(chǔ)知識(shí)4. Docker 啟動(dòng)Redis 并設(shè)置密碼的操作5. asp文件用什么軟件編輯6. 通過IEAD+Maven快速搭建SSM項(xiàng)目的過程(Spring + Spring MVC + Mybatis)7. JS中6個(gè)對(duì)象數(shù)組去重的方法8. vue+element開發(fā)一個(gè)谷歌插件的全過程9. 利用CSS制作3D動(dòng)畫10. Vue axios獲取token臨時(shí)令牌封裝案例

網(wǎng)公網(wǎng)安備