Hibernate uses the equals() method to verify objects match. You might
need to adjust yours.
Matt
On Feb 9, 2009, at 11:59 AM, 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
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net
For additional commands, e-mail: users-h...@appfuse.dev.java.net