栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Hibernate中使用惰性的属性

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

在Hibernate中使用惰性的属性

使用Hibernate 5,可以使用字节码增强轻松完成此操作。

首先,您需要添加以下Maven插件:

<plugin>    <groupId>org.hibernate.orm.tooling</groupId>    <artifactId>hibernate-enhance-maven-plugin</artifactId>    <version>${hibernate.version}</version>    <executions>        <execution> <configuration>     <enableLazyInitialization>true</enableLazyInitialization> </configuration> <goals>     <goal>enhance</goal> </goals>        </execution>    </executions></plugin>

然后,您可以简单地使用以下注释您的实体属性

@Basic(fetch = FetchType.LAZY)

@Entity(name = "Event")@Table(name = "event")public class Event extends baseEntity {    @Type(type = "jsonb")    @Column(columnDefinition = "jsonb")    @Basic(fetch = FetchType.LAZY)    private Location location;    public Location getLocation() {        return location;    }    public void setLocation(Location location) {        this.location = location;    }}

当您获取实体时:

Event event = entityManager.find(Event.class,     eventHolder.get().getId());LOGGER.debug("Fetched event");assertEquals("Cluj-Napoca", event.getLocation().getCity());

Hibernate将使用辅助选择来加载惰性属性:

SELECt e.id AS id1_0_0_FROM   event eWHERe  e.id = 1-- Fetched eventSELECt e.location AS location2_0_FROM   event eWHERe  e.id = 1


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

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

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