Is it possible to insert more than one record in to database using the EntityHome object?
I get following error, and not sure how to go around it.
javax.persistence.PersistenceException: org.hibernate.HibernateException: identifier of an
instance of au.edu.tisc.entity.OrgUserActivityLog was altered from 10001 to 10002
at
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)
at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:299)
In my example, I am trying to insert user activity records in to the table during the
authentication process called from Authenticator.authenticate. If I insert only one record
it works ok; but if I try to insert another I get error on .persist() call.
@Name("authenticator")
public class Authenticator {
public boolean authenticate() {
@In(value = "activityLogger", required = false, create = true)
private ActivityLogger activityLog;
...
... validate user details ...
...
activityLog.log(...); <--insert first record - works ok
...
...
activityLog.log(...); <--try to insert another - causes error
...
}
}
@Name("activityLogger")
public class ActivityLogger {
public void log(OrgUser orgUser, String action) {
OrgUserActivityLogHome orgUserActivityLogHome = (OrgUserActivityLogHome)
Component.getInstance(OrgUserActivityLogHome.class, true);
OrgUserActivityLog orgUserActivityLog = orgUserActivityLogHome.getInstance();
orgUserActivityLog.setId(KeyGenerator.getKey());
orgUserActivityLog.setAction(action);
orgUserActivityLog.setOrganisationUser(orgUser);
orgUserActivityLogHome.persist(); <-- Above error thrown here on 2nd insert.
}
}
I am not sure why, error occurs on 2nd call; since first record insert had already called
.persist() on the Entity Home object.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4088693#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...