我知道这个问题被问了好几次,但我找不到关于这个主题的明确例子和答案(我也尝试了其他可能的解决方案)。我正在使用Spring JPAandHibernate并尝试对 OneToONe 关系进行延迟获取。我有 2 个简单的实体类,一个 Repository 类并使用 h2 数据库来延迟加载实体。我尝试构建时间字节码检测来实现这一点,这些是我的课程。A级@Entitypublic 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;}B级@Entitypublic class B { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "A_ID") private A a;}存储库public interface ARepository extends JpaRepository<A, Long> { A findByName(String name);}pom.xml字节码增强器<plugin> <groupId>org.hibernate.orm.tooling</groupId> <artifactId>hibernate-enhance-maven-plugin</artifactId> <version>${hibernate.version}</version> <executions> <execution> <configuration> <failOnError>true</failOnError> <enableLazyInitialization>true</enableLazyInitialization> </configuration> <goals> <goal>enhance</goal> </goals> </execution> </executions></plugin>最后是 h2 数据库的initdata.sqlinsert into a (name, id) values ('a', 1);insert into b (a_id, id) values (1, 1);当我findByName()在测试类中调用方法时,它仍然对A和执行 2 个查询B。我怎样才能延迟获取B类?提前致谢。
添加回答
举报
0/150
提交
取消