Spring Data Jpa实现自定义repository转DTO
近期项目中需要 关联 几张表再把字段转出来,在这里记录以下,我感觉网上写的都不太规范和清晰。
@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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。
相关文章:
1. 在IDEA中实现同时运行2个相同的java程序2. docker /var/lib/docker/aufs/mnt 目录清理方法3. Vuex localStorage的具体使用4. python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例5. Docker究竟是什么 为什么这么流行 它的优点和缺陷有哪些?6. python+excel接口自动化获取token并作为请求参数进行传参操作7. 基于Python制作一副扑克牌过程详解8. 《CSS3实战》笔记--渐变设计(三)9. ASP.NET泛型三之使用协变和逆变实现类型转换10. Python matplotlib画图时图例说明(legend)放到图像外侧详解

网公网安备