gpt4 book ai didi

java - Hibernate 不在反面缓存我的 OneToOne 关系

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:07 25 4
gpt4 key购买 nike

我有这样的代码:

@Entity
@Table(name = "A")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class A
{
@OneToOne(cascade={CascadeType.ALL}, fetch=FetchType.EAGER, mappedBy="a")
public B getB() {};
}

@Entity
@Table(name = "B")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class B
{
@OneToOne(cascade={}, fetch=FetchType.LAZY)
@JoinColumn(name="A_ID")
public A getA() {};
}

每次加载A 时,都会查询B。为什么A.getB()A加载后没有缓存,是否可以缓存?

最佳答案

对我有用的解决方法是使用@OneToMany 创建额外的方法

@OneToMany(cascade={}, fetch=FetchType.EAGER, mappedBy="a")
public Set<B> getBSet() {};

@Transient
public B getB() { return b.iterator().next(); }

我对这个解决方案不是很满意,但它有效而且我找不到其他方法。

关于java - Hibernate 不在反面缓存我的 OneToOne 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6068374/

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