|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
|
[Java] - Primi passi hibernate
Ciao a tutti,
sto cercando di capire come funziona hibernate e volevo chiedervi una cosa. Seguendo il tutorial, sul sito di hibernate, sto cercando di caricare una lista di elementi (Giocatore). Ora vorrei inserire tutti gli utenti in blocco e fare il commit solo alla fine dopo aver caricato tutti gli elementi. Ho provato a scrivere il codice in questo modo: Codice:
public void inserisciGiocatori(List<Giocatore> giocatori){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Iterator<Giocatore> i = giocatori.iterator();
System.out.println("Sto iniziando ad inserire i giocatori.....");
while(i.hasNext()){
Giocatore g = i.next();
session.save(g);
}
session.getTransaction().commit();
System.out.println("Inserimento terminato!");
}
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session Come posso risolvere? Grazie a tutti, ciao ciao. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Come hai scritto la classe Giocatore?
Controlla che abbia un campo mappato come id. Se usi le annotation, piuttosto che i file xml di mapping puoi vedere qui: http://www.hibernate.org/hib_docs/an...entity-mapping Ciao
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
|
La classe è mappata tramite file xml in questo modo:
Codice:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="player"> <class name="Giocatore" table="giocatore"> <id name="id" type="long" column="id"></id> <property name="ruolo" type="string" column="ruolo"></property> <property name="cognome" type="string" column="cognome"></property> <property name="nome" type="string" column="nome"></property> <property name="squadraA" type="string" column="squadraA"></property> </class> </hibernate-mapping> Credo di averlo impostato correttamente come id, o sbaglio? Grazie, ciao ciao. |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Nov 2007
Messaggi: 38
|
sicuramente hai dei giocatori con lo stesso id, controlla..
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:24.



















