Ho due entità A e B.Sospensione @JoinFormula
public class A{
@Id
@GeneratedValue
private Integer id;
private String uuid;
...
}
L'UUID è dato esternamente; ID può essere visto come versione.
Ora, mi piacerebbe fare riferimento a A in B tale che io abbia l'uuid memorizzato in B e selezioni automaticamente l'A con la uuid e l'id più alto.
Quello che ho cercato è:
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;
...
}
Questo creerà una colonna contenente id di A in B e genera un'eccezione se provo a persistere un oggetto. Ho anche provato @JoinColumnsOrFormulas senza fortuna.
Qualcuno può darmi un suggerimento su come farlo (in Hibernate 3.5 btw)?
Grazie!
accetto così la gente può vedere che questo funziona. – ssedano
Sì. È accettato Ma cosa si aspetta? Come questo qui sceglie il più alto id? –