gpt4 book ai didi

hibernate @JoinFormula

转载 作者:行者123 更新时间:2023-12-04 06:43:16 29 4
gpt4 key购买 nike

我有两个实体A和B。

 public class A{

@Id
@GeneratedValue
private Integer id;

private String uuid;

...
}

UUID是从外部给出的; ID可以视为版本。

现在,我想在B中引用A,以便将uuid存储在B中,并自动选择具有相应uuid和最高ID的A。

我试过的是:
public class B{
@Id
@GeneratedValue
private Integer id;

private String uuidOfA;

@ManyToOne
@JoinFormula(value="SELECT a.id FROM A a WHERE v.uuid = uuidOfA AND v.id = (SELECT max(x.id) FROM A x WHERE x.uuid = v.uuid)", referencedColumnName="id")
private A a;

...
}

这将在B中创建一个包含A的ID的列,并且如果我尝试持久化一个对象,则会引发异常。我也尝试过@JoinColumnsOrFormulas,但是没有运气。

有人可以给我一个提示(在Hibernate 3.5 btw中)吗?

谢谢!

最佳答案

以下作品:

@ManyToOne
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(formula=@JoinFormula(value="(SELECT a.id FROM A a WHERE a.uuid = uuid)", referencedColumnName="id")),
@JoinColumnOrFormula(column = @JoinColumn("uuidOfA", referencedColumnName="uuid"))
})
private A a;

关于 hibernate @JoinFormula,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10980337/

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