![]() |
1
1
如果要将实体别名传递给JPQL中的构造函数,Hibernate必须具体化完整的对象,因此它会在某个时刻以某种方式获取所有字段。据我所知,如果传递实体别名,Hibernate中构造函数表达式的当前实现将始终传递代理,因此您看到的二次加载是由于Hibernate加载状态。如果只想获取实际需要的字段,则需要精确地列出它们。 你可能还喜欢什么 Blaze-Persistence Entity Views 必须提供。 我创建了这个库,以便在JPA模型和自定义接口或抽象类定义的模型之间进行简单的映射,比如Spring数据在类固醇上的投影。其思想是,您可以按照自己喜欢的方式定义目标结构(域模型),并通过JPQL表达式将属性(getter)映射到实体模型。 在Blaze Persistence实体视图中,用例的DTO模型可能如下所示:
查询是将实体视图应用于查询的问题,最简单的就是按id进行查询。
Spring数据集成让您可以像使用Spring数据投影一样使用它: https://persistence.blazebit.com/documentation/entity-view/manual/en_US/index.html#spring-data-features
|
![]() |
TheCrunchyPotato · JPA查询找不到正确的构造函数 2 年前 |
![]() |
Maiko Kingma · hibernate何时加载映射关系 6 年前 |
![]() |
Damien · 如何判断JPA save方法执行了什么操作 6 年前 |