Charles, thanks a million! Had to set the auto_increment one above the one i manually inserted, but that fixed. All take note about manually inserting a entity with an explicit primary auto increment key without using hibernate!
aaron Charles Girardot wrote: > > Hi, > > If you have explicitly set the id in your SQL query then you have > certainly screwed the internal counter for auto_increment. Ie MySQL > thinks the next id to use is 100 but you have inserted it already. > Try to reset the increment value for the table in question ie > > ALTER TABLE theTableInQuestion AUTO_INCREMENT=100 (assuming 100 is > currently the highest of your ids) > > make a backup of the table just in case... > > hope this helps > > Charles > > On 9 Feb 2009, at 19:59, mettamara wrote: > >> >> Hello all, >> Sorry to post a basic problem here, but have struggling with finding >> the >> answer and not sure if anyone has encountered something similar. >> Long story >> short is I had manually inserted an entry directly into a MySQL DB >> using >> SQL, the problem is when I attempt to save a new entity through >> AppFuse >> using the generic hibernate DAO, the save method (which uses the >> SaveOrUpdate) on entity throws a synch error/ duplicate key. The >> hibernate >> object being save has no Id set by the code and the entity Id is >> defined as: >> >> private Long campaignId; >> ... >> @Id @GeneratedValue(strategy = GenerationType.AUTO) >> public Long getCampaignId() { >> return campaignId; >> } >> >> I have tried flushing and rebooting tomcat to get the session to >> resync, but >> no luck. Any one have any thoughts? Stack trace below (100 is the >> primary >> key I entered manually): >> >> ERROR (04:26:31,272) [TP-Processor3] >> AbstractFlushingEventListener.performExecutions(301) | Could not >> synchronize >> database state with session >> org.hibernate.exception.ConstraintViolationException: could not >> insert: >> [com.tig.app.model.AdCampaign] >> at >> org >> .hibernate >> .exception.SQLStateConverter.convert(SQLStateConverter.java:71) >> at >> org >> .hibernate >> .exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) >> at >> org >> .hibernate >> .id >> .insert >> .AbstractReturningDelegate >> .performInsert(AbstractReturningDelegate.java:40) >> at >> org >> .hibernate >> .persister >> .entity.AbstractEntityPersister.insert(AbstractEntityPersister.java: >> 2163) >> at >> org >> .hibernate >> .persister >> .entity.AbstractEntityPersister.insert(AbstractEntityPersister.java: >> 2643) >> at >> org >> .hibernate >> .action >> .EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java: >> 51) >> at org.hibernate.engine.ActionQueue.execute(ActionQueue.java: >> 279) >> at >> org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) >> at >> org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167) >> at >> org >> .hibernate >> .event >> .def >> .AbstractFlushingEventListener >> .performExecutions(AbstractFlushingEventListener.java:298) >> at >> org >> .hibernate >> .event >> .def >> .DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) >> at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) >> at >> org >> .springframework >> .orm >> .hibernate3 >> .HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390) >> at >> org >> .springframework >> .orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java: >> 420) >> at >> org >> .springframework >> .orm >> .hibernate3 >> .HibernateTemplate.executeWithNativeSession(HibernateTemplate.java: >> 374) >> at >> org >> .springframework >> .orm.hibernate3.HibernateTemplate.merge(HibernateTemplate.java:820) >> at >> org >> .appfuse >> .dao.hibernate.GenericDaoHibernate.save(GenericDaoHibernate.java:95) >> ..... >> Caused by: >> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: >> Duplicate entry '100' for key 1 >> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java: >> 931) >> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941) >> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623) >> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715) >> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249) >> at >> com >> .mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java: >> 1268) >> -- >> View this message in context: >> http://www.nabble.com/Manually-Inserted-Entity-and-GenericHibernate-DAO-synchronization-conflict-tp21919006s2369p21919006.html >> Sent from the AppFuse - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net >> For additional commands, e-mail: users-h...@appfuse.dev.java.net >> > > ===================================== > Charles Girardot > European Molecular Biology Laboratory > C. Boulin and E. Furlong Groups > Tel: +49-6221-387-8426 > Email: charles.girar...@embl.de > Room 502 > Meyerhofstrasse 1 - Postfach 10.2209 > 69012 Heidelberg, Germany > ===================================== > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net > For additional commands, e-mail: users-h...@appfuse.dev.java.net > > > -- View this message in context: http://www.nabble.com/Manually-Inserted-Entity-and-GenericHibernate-DAO-synchronization-conflict-tp21919006s2369p21929311.html Sent from the AppFuse - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net For additional commands, e-mail: users-h...@appfuse.dev.java.net