Ricordo che c'è un'annotazione in JPA o in ibernazione per dire alla ibernazione di usare il metodo getId/setId invece della proprietà (annotiamo le nostre proprietà). Senza questa impostazione si ottengono risultati positivi nel colpire il database e riempire tutti i campi di quell'oggetto che non è quello che voglio. Qualcuno sa cos'è questa annotazione?hibernate getId sta caricando l'oggetto anche se è pigro
Esempio:
public void Project {
@Id
//Other annotation forcing hibernate to use property get/settter
public Long id;
}
public Ticket {
@ManyToOne(lazy=true)
public Project project;
}
così, ticket.getProject.getId() determina che colpisce il database per ottenere il progetto quando l'ID è già in oggetto proxy progetto di sospensione. L'annotazione risolverà ciò che ricordo.
grazie, Dean
Link qui con qualche dettaglio in più; http://256.com/gray/docs/misc/hibernate_lazy_field_access_annotations.shtml –
scusa, ho usato il campo di gioco e ti ci fai abituare dopo un po '. Non mi piacciono i campi pubblici, ma dopo aver usato scala, vorrei che java avesse qualcosa del genere per ridurre la codifica. –
sparare, questo genera un avviso per ogni classe in cui è attiva, in quanto le specifiche JPA affermano che l'annotazione deve essere eseguita con il metodo getId, ma spostarla lì produce solo un'eccezione e non funzionerà affatto. Come si fa a farlo correttamente in questi giorni ??? (Usavo questo sul campo ma potrebbe essere stato quello specifico di ibernazione) ... grazie. –