我有两个实体A和B.
public class A{
@Id
@GeneratedValue
private Integer id;
private String uuid;
...
}
Run Code Online (Sandbox Code Playgroud)
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;
...
}
Run Code Online (Sandbox Code Playgroud)
这将在B中创建一个包含A的id的列,并在我尝试持久化对象时抛出异常.我也没试过@JoinColumnsOrFormulas.
有人可以给我一个如何做到这一点的提示(在Hibernate 3.5 btw)?
谢谢!
hibernate ×1