Spring Data Jpa实现自定义repository转DTO

网友投稿 572 2023-05-05

Spring Data Jpa实现自定义repository转DTO

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.timPhMcMEe,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 JpaRepositoPhMcMEry {

@Query(name="getTestQuery")

List getTestQuery(String locationId, String customId);

}

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

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅析Spring配置中的classpath:与classpath*:的区别
下一篇:idea2019导入maven项目中的某些问题及解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~