栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Data Jpa实现自定义repository转DTO

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

需要声明接口:

@Repository
public interface TestEntityRepository extends JpaRepository {

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

}

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

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/132770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号