Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
Hibernate version:[ 3/b]
[b]Mapping documents: 3
Code between sessionFactory.openSession() and session.close():
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not get or update next value
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:41)
at org.hibernate.engine.transaction.Isolater$JdbcDelegate.delegateWork(Isolater.java:187)
at org.hibernate.engine.transaction.Isolater.doIsolatedWork(Isolater.java:43)
at org.hibernate.engine.TransactionHelper.doWorkInNewTransaction(TransactionHelper.java:51)
at org.hibernate.id.TableGenerator.generate(TableGenerator.java:94)
at org.hibernate.id.TableHiLoGenerator.generate(TableHiLoGenerator.java:62)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at inventario.Main.main(Main.java:45)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00972: identifier is too long
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:785)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:860)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3425)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1490)
at org.hibernate.id.TableGenerator.doWorkInCurrentTransaction(TableGenerator.java:134)
at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:38)
... 15 more
Java Result: 1
I have create hiberante xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="inventario.Installazioni" table="INVENTARIO_INSTALLAZIONE">
<id name="ID_INSTALLAZIONE" column="ID_INSTALLAZIONE" type="java.lang.Long" unsaved-value="null">
<generator class="hilo">
<param name="table">INVENTARIO_INSTALLAZIONE_SEQ</param>
<param name="column" >NEXT</param>
</generator>
</id>
<property name="ID_DIPENDENTE" column="ID_DIPENDENTE" not-null="true" />
<property name="ID_INSTALLATORE" column="ID_INSTALLATORE" not-null="true" />
<property name="DATA" column="DATA" not-null="true" />
<many-to-one name="COMPUTER" class="inventario.Computer"
cascade="save-update"
fetch="join"
lazy="false"
update="true"
insert="true"
column="ID_COMPUTER"
not-null="false"/>
<many-to-one name="FILIALI" class="inventario.Filiali"
cascade="save-update"
fetch="join"
lazy="false"
update="true"
insert="true"
column="ID_FILIALI"
not-null="false"/>
<set name="DATI_INSTALLAZIONI"
table="INVENTARIO_INSTALLAZIONI_DATI">
<key column="ID_INSTALLAZIONE"/>
<many-to-many
class="inventario.Dati_Installazione"
column="ID_DATI_INSTALLAZIONE"/>
</set>
</class>
</hibernate-mapping>
and
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="inventario.Dati_Installazione" table="INVENTARIO_DATI_INSTALLAZIONE">
<id name="ID_DATI_INSTALLAZIONE" column="ID_DATI_INSTALLAZIONE" type="java.lang.Long" unsaved-value="null">
<generator class="hilo">
<param name="table">INVENTARIO_DATI_INSTALLAZIONE_SEQ</param>
<param name="column">NEXT</param>
</generator>
</id>
<many-to-one name="VOCE" class="inventario.Voce"
cascade="save-update"
fetch="join"
lazy="false"
update="true"
insert="true"
column="ID_VOCE"
not-null="false"/>
</class>
</hibernate-mapping>
In main have insert this code:
Code:
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
Computer pc = new Computer();
pc.setNOME_RETE("aa");
pc.setSERIALE("aa");
pc.setKEY("aa");
Voce v = new Voce();
v.setNOME("aa");
Installazioni in = new Installazioni();
Dati_Installazione d2 = new Dati_Installazione();
d2.setVOCE(v);
session.save(d2);
in.setCOMPUTER(pc);
in.setDATI_INSTALLAZIONI(new HashSet());
in.getDATI_INSTALLAZIONI().add(d2);
in.setID_DIPENDENTE(1);
in.setID_INSTALLATORE(1);
in.setDATA((Calendar)GregorianCalendar.getInstance());
Filiali f = new Filiali();
f.setNOME("aa");
in.setFILIALI(f);
session.save(in);
tx.commit();