码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Data Jpa 自定义 repository 转 DTO

时间:2020-07-30 01:43:19      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:att   build   and   lan   named   col   vat   uil   targe   

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

@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;
}

需要声明接口:
@Repository
public interface TestEntityRepository extends JpaRepository<TestEntity,String> {

@Query(name="getTestQuery")
List<TestEntity> getTestQuery(String locationId, String customId);

}
若不想声明接口,那可以用EntityManager 来实现。 
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
 推荐阅读:https://www.360wenxue.cn/sitemap.html

Spring Data Jpa 自定义 repository 转 DTO

标签:att   build   and   lan   named   col   vat   uil   targe   

原文地址:https://www.cnblogs.com/1994jinnan/p/13401320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!