gpt4 book ai didi

java - @ManyToOne 和@BatchSize

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:18 24 4
gpt4 key购买 nike

我在一些旧代码中发现了奇怪的东西(至少对我而言)。

注解为@ManyToOne 的字段也被注解为@BatchSize

我一直认为 @BatchSize 注释只影响在类级别或集合上注释时 (@OneToMany) 并影响预取 迭代时。

但也许我错了,用 @BatchSize 注释 @ManyToOne 会影响某些事情。我在文档中找不到答案。

@BatchSize 注释 @ManyToOne 有意义吗?

最佳答案

我认为这个问题是指在同一字段上组合 @ManyToOne@BatchSize,例如:

@ManyToOne
@BatchSize(size = 5)
private User owner;

Hibernate 不支持这个用例,至少在使用注解时是这样。 documentation 提到的批量获取的唯一用途是:

  • 在集合字段上,即 @OneToMany@ManyToMany(但不是 @ManyToOne)<
  • 关于要获取的实体类

例如:

@Entity
@BatchSize(size = 5)
public class User {
...
}

后一种情况可以对所有用户类型的关系进行批处理,包括多对一关系。但是,使用实体类上的注释无法逐个字段地控制行为。

在 Hibernate 源代码中搜索 @BatchSize 的所有用法,确认缺乏对您的用法的支持。从我在 AnnotationBinder.java 中看到的,@BatchSize 注释仅在实体类和具有某种 @XxxToMany 注释的字段上进行检查。

关于java - @ManyToOne 和@BatchSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13048436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com