View Full Version : [J2EE Hibernate] Problema con jar ElementCollection
carter100
13-11-2010, 12:08
Ciao, sto impazzendo con 1 progetto Hibernate 3 (annotations) su Eclipse.
Il problema è quando cerco di fare un mapping di join tra 3 tabelle, esempio:
- tabella user: username.
- tabella user_azione: username, id azione, quantità.
- tabella azione: id azione.
Per il join mi serve l'annotation @ElementCollection, per la quale ho messo il jar hibernate-jpa-2.0-api-1.0.0.Final.jar.
Problema: se faccio il tutto senza application server, quindi chiamo le operazioni dao da metodo main, tutto funziona.
Se attacco jboss, mi dà errori sul classnotfound della classe user (mappata sulla tabella user). Il tutto dipende da quel jar, se lo cancello e stacco quel mapping, il resto funziona. Versioni incompatibili con quelle di hibernate poste sotto JBoss 5?
Non so davvero cosa guardare, è 1 settimana che sto messo così...mi date 1 suggerimento?
Grazie...
Ciao, sto impazzendo con 1 progetto Hibernate 3 (annotations) su Eclipse.
Il problema è quando cerco di fare un mapping di join tra 3 tabelle, esempio:
- tabella user: username.
- tabella user_azione: username, id azione, quantità.
- tabella azione: id azione.
Per il join mi serve l'annotation @ElementCollection, per la quale ho messo il jar hibernate-jpa-2.0-api-1.0.0.Final.jar.
Problema: se faccio il tutto senza application server, quindi chiamo le operazioni dao da metodo main, tutto funziona.
Se attacco jboss, mi dà errori sul classnotfound della classe user (mappata sulla tabella user). Il tutto dipende da quel jar, se lo cancello e stacco quel mapping, il resto funziona. Versioni incompatibili con quelle di hibernate poste sotto JBoss 5?
Non so davvero cosa guardare, è 1 settimana che sto messo così...mi date 1 suggerimento?
Grazie...
Ciao, te lo chiedo da ignorante, come mai usi @ElementCollection? Io di solito per fare quello che devi fare mi creo i miei tre bei POJO dove in uno, user_azione appunto, metto i riferimenti agli altri due.
Ma io è poco che uso hibernate quindi prendi la mia solo come una domanda.
carter100
13-11-2010, 18:23
Ciao, te lo chiedo da ignorante, come mai usi @ElementCollection? Io di solito per fare quello che devi fare mi creo i miei tre bei POJO dove in uno, user_azione appunto, metto i riferimenti agli altri due.
Ma io è poco che uso hibernate quindi prendi la mia solo come una domanda.
Non c'è problema.
Ti posto il mapping, magari ti viene utile:
Su classe User:
@ElementCollection
@JoinTable(
name = "user_azione",
joinColumns = @JoinColumn (name = "USERNAME")
)
private List<SharesHeld> shares = new ArrayList<SharesHeld>();
Su classe SharesHeld:
@ManyToOne
@JoinColumn(name = "ID",
nullable = false,
updatable = false)
private Azione azione;
@Column (name="AMOUNT")
private int amount;
La classe Azione invece ha i semplici id e proprietà semplici.
Uso questo mapping perchè...boh...è l'unico che ho trovato per avere una tabella di join con colonne aggiuntive (la tabella userAzione ha i riferimenti di utente ed azione ed il campo amount).
Mi spieghi meglio il tuo metodo, se fa ciò che mi serve?
Perchè mi sto scocciando di questo problema, probabilmente JBoss ha qualche libreria di hibernate incompatibile con la mia hibernate-jpa, però non so nemmeno come fare a capire che versione prendere...suggerimenti?
Grazie!
carter100
14-11-2010, 13:21
Ho risolto.
Il problema era alquanto banale, anche se complicato da trovare.
Al posto di usare @ElementCollection, appartenente a jar esterni a jboss e che quindi creava quei problemi, ho usato l'annotation @CollectionOfElements, che dovrebbe fare la stessa cosa.
Adesso in esecuzione non ci sono errori inventati sul mapping errato delle classi, e l'inserimento avviene con successo ;)
Grazie lo stesso!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.