小编Alp*_*men的帖子

Hibernate OneToONe Lazy Fetching

我知道这个问题被问了好几次,但是我找不到一个明确的例子并且回答了这个话题(我也尝试了其他可能的解决方案).

我正在使用Spring JPAHibernate尝试对OneToONe关系进行延迟获取.我有2个简单的Entity类,一个Repository类和使用h2数据库来延迟加载一个实体.我尝试构建时间字节码检测来实现这一点,这些是我的类.

A级

@Entity
public class A {

    private String name;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne(optional = false, fetch = FetchType.LAZY, mappedBy = "a")
    @LazyToOne(LazyToOneOption.NO_PROXY)
    private B b;
}
Run Code Online (Sandbox Code Playgroud)

B级

@Entity
public class B {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne(fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "A_ID")
    private A a;
}
Run Code Online (Sandbox Code Playgroud)

知识库

public interface ARepository extends JpaRepository<A, Long> {
    A findByName(String name);
}
Run Code Online (Sandbox Code Playgroud)

pom.xml字节码增强器

<plugin>
    <groupId>org.hibernate.orm.tooling</groupId>
    <artifactId>hibernate-enhance-maven-plugin</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java hibernate lazy-loading one-to-one spring-data-jpa

6
推荐指数
1
解决办法
546
查看次数