Tengo dos entidades A y B.Hibernate @JoinFormula
public class A{
@Id
@GeneratedValue
private Integer id;
private String uuid;
...
}
se da externamente El UUID; ID se puede ver como versión.
Ahora, me gustaría hacer referencia a A en B de tal manera que tengo el uuid almacenado en B y selecciono automáticamente el A con el uuid correspondiente y el ID más alto.
Lo que intenté es:
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;
...
}
Esto creará una columna que contiene el id de A en B y produce una excepción si trato de persistir un objeto. También probé @JoinColumnsOrFormulas sin suerte.
¿Alguien me puede dar una pista sobre cómo hacer esto (en Hibernate 3.5 btw)?
Gracias!
aceptarlo por lo que la gente puede ver que esto funciona. – ssedano
Sí. Es aceptado Pero, ¿es lo que esperaba? ¿Cómo este elige el ID más alto aquí? –