У меня есть два объекта А и В.Спящий @JoinFormula
public class A{
@Id
@GeneratedValue
private Integer id;
private String uuid;
...
}
Использование UUID дается извне; ID можно рассматривать как версию.
Теперь я хотел бы ссылаться на A в B, чтобы у меня был uuid, сохраненный в B, и автоматически выбирал A с соответствующим uuid и самым высоким id.
То, что я попытался это:
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 и генерирует исключение при попытке сохранить объект. Я также попробовал @JoinColumnsOrFormulas без везения.
Может ли кто-нибудь дать мне подсказку о том, как это сделать (в Hibernate 3.5 btw)?
Спасибо!
Примите это, чтобы люди могли видеть, что это работает. – ssedano
Да. Это принято. Но как это ожидалось? Как этот человек выбирает самый высокий идентификатор здесь? –