These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 12 posts ] 
Author Message
 Post subject: Many-to-many insert problem
PostPosted: Mon Feb 12, 2007 3:24 pm 
Newbie

Joined: Wed Feb 07, 2007 8:26 pm
Posts: 17
Dears;

I have many to many relation between user and role. when inserting new user with some roles, the link table isn't updated.

Hibernate version:3

Mapping documents:

Code:
<class name="User" table="User">
        <id name="UID" column="UID" type="int">
            <generator class="native"/>
        </id>
        <property name="username" type="string" />
        <property name="password" type="string"/>
        <property name="email" type="string"/>
       
        <set name="roles" table="users_roles" cascade="save-update" inverse="true">
            <key column="UID"/>
            <many-to-many column="RID" class="Role"/>
        </set>
    </class>
    <class name="Role" table="Role"  >
        <id name="RID" type="int">
            <generator class="native" />
        </id>
        <property name="name" type="string" column="name"/>
        <set name="users" table="users_roles">
            <key column="RID"/>
            <many-to-many column="UID" class="User" />
        </set>
    </class>



Thanks in advance
BISO


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 12, 2007 3:28 pm 
Newbie

Joined: Fri Aug 04, 2006 3:01 pm
Posts: 13
Using 'inverse="true"' means that modifications to this collection are not persisted in the association table. You should try 'false'.


Don't forget to vote !


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 12, 2007 3:34 pm 
Newbie

Joined: Mon Jan 15, 2007 9:51 am
Posts: 17
I'd put the inverse on the other side of the mapping, seems more logical imho. :)

Inverse="true" means that hibernate ignores this field when updating/persisting. Hibernate has no idea that there's a connection between users.setRoles() and roles.setUsers(), so you need to tell it about it excplicitly with inverse.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 12, 2007 6:37 pm 
Newbie

Joined: Wed Feb 07, 2007 8:26 pm
Posts: 17
luc boudreau wrote:
Using 'inverse="true"' means that modifications to this collection are not persisted in the association table. You should try 'false'.


Don't forget to vote !


luc boudreau,

i got this error:
Code:
exception

javax.servlet.ServletException: Could not execute JDBC batch update
   org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
   org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
   org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
   org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

root cause

org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
   org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
   org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
   org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
   org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
   org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
   org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:143)
   org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
   org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
   org.hibernate.impl.SessionImpl.flush(SessionImpl.java:993)
   org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:340)
   org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
   com.mufic.mufix.multiuser.UserFacade.saveUser(UserFacade.java:34)
   com.mufic.mufix.multiuser.actions.Home.execute(Home.java:48)
   org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
   org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
   org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 12, 2007 6:43 pm 
Newbie

Joined: Wed Feb 07, 2007 8:26 pm
Posts: 17
daijavad wrote:
I'd put the inverse on the other side of the mapping, seems more logical imho. :)

Inverse="true" means that hibernate ignores this field when updating/persisting. Hibernate has no idea that there's a connection between users.setRoles() and roles.setUsers(), so you need to tell it about it excplicitly with inverse.


got this error
Code:
exception

javax.servlet.ServletException: Could not execute JDBC batch update
   org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
   org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
   org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
   org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

root cause

org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
   org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
   org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
   org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
   org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
   org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
   org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:143)
   org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
   org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
   org.hibernate.impl.SessionImpl.flush(SessionImpl.java:993)
   org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:340)
   org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
   com.mufic.mufix.multiuser.UserFacade.saveUser(UserFacade.java:34)
   com.mufic.mufix.multiuser.actions.Home.execute(Home.java:48)
   org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
   org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
   org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 13, 2007 10:30 am 
Newbie

Joined: Fri Aug 04, 2006 3:01 pm
Posts: 13
Err, we need more details than that. Logs, complete mappings, domain model details, etc, etc.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 16, 2007 3:57 pm 
Newbie

Joined: Wed Feb 07, 2007 8:26 pm
Posts: 17
luc boudreau wrote:
Err, we need more details than that. Logs, complete mappings, domain model details, etc, etc.


Sorry luc boudreau, this is my 1st time asking for help
Mapping
Code:
    <class name="User" table="User">
        <id name="UID" column="UID" type="int">
            <generator class="native"/>
        </id>
        <property name="username" type="string" />
        <property name="password" type="string"/>
        <property name="email" type="string"/>
       
        <set name="roles" table="users_roles" cascade="save-update" inverse="false">
            <key column="UID"/>
            <many-to-many column="RID" class="Role"/>
        </set>
    </class>
    <class name="Role" table="Role"  >
        <id name="RID" type="int">
            <generator class="native" />
        </id>
        <property name="name" type="string" column="name"/>
        <set name="users" table="users_roles"  >
            <key column="RID"/>
            <many-to-many column="UID" class="User" />
        </set>
    </class>


Domain model
Code:
public class Role {
   
   private int RID;
   private String name;
   private Set users;
...
}

public class User {
   
   private int UID;
   private String username;
   private String password;
   private String name;
   private String email;
   private Set roles;
...
}



Log message
Code:
class java.lang.String
{1,3}
21:49:02,328 DEBUG SessionImpl:222 - opened session at timestamp: 4799100282109952
21:49:02,328 DEBUG DefaultLoadEventListener:154 - loading entity: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,328 DEBUG DefaultLoadEventListener:309 - attempting to resolve: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,328 DEBUG DefaultLoadEventListener:345 - object not resolved in any cache: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,328 DEBUG AbstractEntityPersister:2814 - Fetching entity: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,375 DEBUG Loader:1777 - loading entity: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,375 DEBUG AbstractBatcher:358 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
21:49:02,375 DEBUG ConnectionManager:415 - opening JDBC connection
21:49:02,375 DEBUG DriverManagerConnectionProvider:93 - total checked-out connections: 1
21:49:02,375 DEBUG DriverManagerConnectionProvider:99 - using pooled JDBC connection, pool size: 0
21:49:02,375 DEBUG SQL:393 - select role0_.RID as RID2_0_, role0_.name as name2_0_ from Role role0_ where role0_.RID=?
Hibernate: select role0_.RID as RID2_0_, role0_.name as name2_0_ from Role role0_ where role0_.RID=?
21:49:02,375 DEBUG AbstractBatcher:476 - preparing statement
21:49:02,390 DEBUG AbstractBatcher:374 - about to open ResultSet (open ResultSets: 0, globally: 0)
21:49:02,390 DEBUG Loader:682 - processing result set
21:49:02,390 DEBUG Loader:687 - result set row: 0
21:49:02,390 DEBUG Loader:1164 - result row: EntityKey[com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,390 DEBUG Loader:1347 - Initializing object from ResultSet: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,390 DEBUG AbstractEntityPersister:1944 - Hydrating entity: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,390 DEBUG Loader:709 - done processing result set (1 rows)
21:49:02,390 DEBUG AbstractBatcher:381 - about to close ResultSet (open ResultSets: 1, globally: 1)
21:49:02,390 DEBUG AbstractBatcher:366 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
21:49:02,390 DEBUG AbstractBatcher:525 - closing statement
21:49:02,390 DEBUG Loader:839 - total objects hydrated: 1
21:49:02,390 DEBUG TwoPhaseLoad:107 - resolving associations for [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,390 DEBUG CollectionLoadContext:141 - creating collection wrapper:[com.mufic.mufix.multiuser.beans.Role.users#1]
21:49:02,390 DEBUG TwoPhaseLoad:206 - done materializing entity [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,390 DEBUG StatefulPersistenceContext:748 - initializing non-lazy collections
21:49:02,390 DEBUG Loader:1808 - done entity load
21:49:02,390 DEBUG JDBCContext:226 - after autocommit
21:49:02,390 DEBUG ConnectionManager:398 - aggressively releasing JDBC connection
21:49:02,390 DEBUG ConnectionManager:435 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
21:49:02,406 DEBUG DriverManagerConnectionProvider:129 - returning connection to pool, pool size: 1
21:49:02,406 DEBUG SessionImpl:275 - closing session
21:49:02,406 DEBUG ConnectionManager:369 - connection already null in cleanup : no action
21:49:02,406 DEBUG SessionImpl:222 - opened session at timestamp: 4799100282494976
21:49:02,406 DEBUG DefaultLoadEventListener:154 - loading entity: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,406 DEBUG DefaultLoadEventListener:309 - attempting to resolve: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,406 DEBUG DefaultLoadEventListener:345 - object not resolved in any cache: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,406 DEBUG AbstractEntityPersister:2814 - Fetching entity: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,406 DEBUG Loader:1777 - loading entity: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,421 DEBUG AbstractBatcher:358 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
21:49:02,421 DEBUG ConnectionManager:415 - opening JDBC connection
21:49:02,421 DEBUG DriverManagerConnectionProvider:93 - total checked-out connections: 1
21:49:02,421 DEBUG DriverManagerConnectionProvider:99 - using pooled JDBC connection, pool size: 0
21:49:02,421 DEBUG SQL:393 - select role0_.RID as RID2_0_, role0_.name as name2_0_ from Role role0_ where role0_.RID=?
Hibernate: select role0_.RID as RID2_0_, role0_.name as name2_0_ from Role role0_ where role0_.RID=?
21:49:02,421 DEBUG AbstractBatcher:476 - preparing statement
21:49:02,421 DEBUG AbstractBatcher:374 - about to open ResultSet (open ResultSets: 0, globally: 0)
21:49:02,421 DEBUG Loader:682 - processing result set
21:49:02,421 DEBUG Loader:687 - result set row: 0
21:49:02,421 DEBUG Loader:1164 - result row: EntityKey[com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,421 DEBUG Loader:1347 - Initializing object from ResultSet: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,421 DEBUG AbstractEntityPersister:1944 - Hydrating entity: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,421 DEBUG Loader:709 - done processing result set (1 rows)
21:49:02,421 DEBUG AbstractBatcher:381 - about to close ResultSet (open ResultSets: 1, globally: 1)
21:49:02,421 DEBUG AbstractBatcher:366 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
21:49:02,421 DEBUG AbstractBatcher:525 - closing statement
21:49:02,421 DEBUG Loader:839 - total objects hydrated: 1
21:49:02,437 DEBUG TwoPhaseLoad:107 - resolving associations for [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,437 DEBUG CollectionLoadContext:141 - creating collection wrapper:[com.mufic.mufix.multiuser.beans.Role.users#3]
21:49:02,437 DEBUG TwoPhaseLoad:206 - done materializing entity [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,437 DEBUG StatefulPersistenceContext:748 - initializing non-lazy collections
21:49:02,437 DEBUG Loader:1808 - done entity load
21:49:02,437 DEBUG JDBCContext:226 - after autocommit
21:49:02,437 DEBUG ConnectionManager:398 - aggressively releasing JDBC connection
21:49:02,437 DEBUG ConnectionManager:435 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
21:49:02,437 DEBUG DriverManagerConnectionProvider:129 - returning connection to pool, pool size: 1
21:49:02,437 DEBUG SessionImpl:275 - closing session
21:49:02,437 DEBUG ConnectionManager:369 - connection already null in cleanup : no action
21:49:02,437 DEBUG SessionImpl:222 - opened session at timestamp: 4799100282621952
21:49:02,437 DEBUG JDBCTransaction:54 - begin
21:49:02,437 DEBUG ConnectionManager:415 - opening JDBC connection
21:49:02,437 DEBUG DriverManagerConnectionProvider:93 - total checked-out connections: 1
21:49:02,437 DEBUG DriverManagerConnectionProvider:99 - using pooled JDBC connection, pool size: 0
21:49:02,437 DEBUG JDBCTransaction:59 - current autocommit status: false
21:49:02,437 DEBUG JDBCContext:203 - after transaction begin
21:49:02,437 DEBUG IdentifierValue:104 - id unsaved-value: 0
21:49:02,437 DEBUG AbstractSaveEventListener:489 - transient instance of: com.mufic.mufix.multiuser.beans.User
21:49:02,453 DEBUG DefaultSaveOrUpdateEventListener:161 - saving transient instance
21:49:02,453 DEBUG AbstractSaveEventListener:152 - saving [com.mufic.mufix.multiuser.beans.User#<null>]
21:49:02,453 DEBUG AbstractSaveEventListener:240 - executing insertions
21:49:02,453 DEBUG Cascade:237 - processing cascade ACTION_SAVE_UPDATE for: com.mufic.mufix.multiuser.beans.User
21:49:02,453 DEBUG Cascade:259 - done processing cascade ACTION_SAVE_UPDATE for: com.mufic.mufix.multiuser.beans.User
21:49:02,453 DEBUG WrapVisitor:87 - Wrapped collection in role: com.mufic.mufix.multiuser.beans.User.roles
21:49:02,453 DEBUG AbstractSaveEventListener:289 - executing identity-insert immediately
21:49:02,453 DEBUG AbstractEntityPersister:2030 - Inserting entity: com.mufic.mufix.multiuser.beans.User (native id)
21:49:02,453 DEBUG AbstractBatcher:358 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
21:49:02,453 DEBUG SQL:393 - insert into User (username, password, email) values (?, ?, ?)
Hibernate: insert into User (username, password, email) values (?, ?, ?)
21:49:02,453 DEBUG AbstractBatcher:476 - preparing statement
21:49:02,453 DEBUG AbstractEntityPersister:1905 - Dehydrating entity: [com.mufic.mufix.multiuser.beans.User#<null>]
21:49:02,453 DEBUG AbstractBatcher:366 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
21:49:02,453 DEBUG AbstractBatcher:525 - closing statement
21:49:02,453 DEBUG AbstractBatcher:358 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
21:49:02,453 DEBUG SQL:393 - select last_insert_id()
Hibernate: select last_insert_id()
21:49:02,453 DEBUG AbstractBatcher:476 - preparing statement
21:49:02,468 DEBUG IdentifierGeneratorFactory:37 - Natively generated identity: 15
21:49:02,468 DEBUG AbstractBatcher:366 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
21:49:02,484 DEBUG AbstractBatcher:525 - closing statement
21:49:02,500 DEBUG Cascade:237 - processing cascade ACTION_SAVE_UPDATE for: com.mufic.mufix.multiuser.beans.User
21:49:02,500 DEBUG Cascade:285 - cascade ACTION_SAVE_UPDATE for collection: com.mufic.mufix.multiuser.beans.User.roles
21:49:02,500 DEBUG CascadingAction:133 - cascading to saveOrUpdate: com.mufic.mufix.multiuser.beans.Role
21:49:02,500 DEBUG IdentifierValue:104 - id unsaved-value: 0
21:49:02,500 DEBUG AbstractSaveEventListener:498 - detached instance of: com.mufic.mufix.multiuser.beans.Role
21:49:02,500 DEBUG DefaultSaveOrUpdateEventListener:203 - updating detached instance
21:49:02,500 DEBUG DefaultSaveOrUpdateEventListener:249 - updating [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,500 DEBUG DefaultSaveOrUpdateEventListener:298 - updating [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,500 DEBUG CascadingAction:133 - cascading to saveOrUpdate: com.mufic.mufix.multiuser.beans.Role
21:49:02,500 DEBUG IdentifierValue:104 - id unsaved-value: 0
21:49:02,500 DEBUG AbstractSaveEventListener:498 - detached instance of: com.mufic.mufix.multiuser.beans.Role
21:49:02,500 DEBUG DefaultSaveOrUpdateEventListener:203 - updating detached instance
21:49:02,500 DEBUG DefaultSaveOrUpdateEventListener:249 - updating [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,500 DEBUG DefaultSaveOrUpdateEventListener:298 - updating [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,500 DEBUG Cascade:300 - done cascade ACTION_SAVE_UPDATE for collection: com.mufic.mufix.multiuser.beans.User.roles
21:49:02,500 DEBUG Cascade:259 - done processing cascade ACTION_SAVE_UPDATE for: com.mufic.mufix.multiuser.beans.User
21:49:02,515 DEBUG JDBCTransaction:103 - commit
21:49:02,515 DEBUG SessionImpl:339 - automatically flushing session
21:49:02,515 DEBUG AbstractFlushingEventListener:58 - flushing session
21:49:02,515 DEBUG AbstractFlushingEventListener:111 - processing flush-time cascades
21:49:02,515 DEBUG Cascade:237 - processing cascade ACTION_SAVE_UPDATE for: com.mufic.mufix.multiuser.beans.User
21:49:02,515 DEBUG Cascade:285 - cascade ACTION_SAVE_UPDATE for collection: com.mufic.mufix.multiuser.beans.User.roles
21:49:02,515 DEBUG CascadingAction:133 - cascading to saveOrUpdate: com.mufic.mufix.multiuser.beans.Role
21:49:02,515 DEBUG AbstractSaveEventListener:463 - persistent instance of: com.mufic.mufix.multiuser.beans.Role
21:49:02,515 DEBUG DefaultSaveOrUpdateEventListener:105 - ignoring persistent instance
21:49:02,515 DEBUG DefaultSaveOrUpdateEventListener:142 - object already associated with session: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,515 DEBUG CascadingAction:133 - cascading to saveOrUpdate: com.mufic.mufix.multiuser.beans.Role
21:49:02,515 DEBUG AbstractSaveEventListener:463 - persistent instance of: com.mufic.mufix.multiuser.beans.Role
21:49:02,515 DEBUG DefaultSaveOrUpdateEventListener:105 - ignoring persistent instance
21:49:02,515 DEBUG DefaultSaveOrUpdateEventListener:142 - object already associated with session: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,515 DEBUG Cascade:300 - done cascade ACTION_SAVE_UPDATE for collection: com.mufic.mufix.multiuser.beans.User.roles
21:49:02,515 DEBUG Cascade:259 - done processing cascade ACTION_SAVE_UPDATE for: com.mufic.mufix.multiuser.beans.User
21:49:02,515 DEBUG AbstractFlushingEventListener:153 - dirty checking collections
21:49:02,515 DEBUG AbstractFlushingEventListener:170 - Flushing entities and processing referenced collections
21:49:02,515 DEBUG Collections:176 - Collection found: [com.mufic.mufix.multiuser.beans.User.roles#15], was: [<unreferenced>] (initialized)
21:49:02,515 DEBUG DefaultFlushEntityEventListener:229 - Updating entity: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,531 DEBUG Collections:176 - Collection found: [com.mufic.mufix.multiuser.beans.Role.users#1], was: [com.mufic.mufix.multiuser.beans.Role.users#1] (uninitialized)
21:49:02,531 DEBUG DefaultFlushEntityEventListener:229 - Updating entity: [com.mufic.mufix.multiuser.beans.Role#3]
21:49:02,531 DEBUG Collections:176 - Collection found: [com.mufic.mufix.multiuser.beans.Role.users#3], was: [com.mufic.mufix.multiuser.beans.Role.users#3] (uninitialized)
21:49:02,531 DEBUG AbstractFlushingEventListener:209 - Processing unreferenced collections
21:49:02,531 DEBUG AbstractFlushingEventListener:223 - Scheduling collection removes/(re)creates/updates
21:49:02,531 DEBUG AbstractFlushingEventListener:85 - Flushed: 0 insertions, 2 updates, 0 deletions to 3 objects
21:49:02,531 DEBUG AbstractFlushingEventListener:91 - Flushed: 1 (re)creations, 0 updates, 0 removals to 3 collections
21:49:02,531 DEBUG Printer:83 - listing entities:
21:49:02,531 DEBUG Printer:90 - com.mufic.mufix.multiuser.beans.Role{users=<uninitialized>, name=role3, RID=3}
21:49:02,531 DEBUG Printer:90 - com.mufic.mufix.multiuser.beans.Role{users=<uninitialized>, name=role 1, RID=1}
21:49:02,531 DEBUG Printer:90 - com.mufic.mufix.multiuser.beans.User{username=biso, email=ooo, UID=15, roles=[com.mufic.mufix.multiuser.beans.Role#1, com.mufic.mufix.multiuser.beans.Role#3], password=bi}
21:49:02,531 DEBUG AbstractFlushingEventListener:289 - executing flush
21:49:02,531 DEBUG ConnectionManager:463 - registering flush begin
21:49:02,531 DEBUG AbstractEntityPersister:2211 - Updating entity: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:02,531 DEBUG AbstractBatcher:358 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
21:49:02,531 DEBUG SQL:393 - update Role set name=? where RID=?
Hibernate: update Role set name=? where RID=?
21:49:02,531 DEBUG AbstractBatcher:476 - preparing statement
21:49:02,531 DEBUG AbstractEntityPersister:1905 - Dehydrating entity: [com.mufic.mufix.multiuser.beans.Role#1]
21:49:53,000 DEBUG AbstractBatcher:366 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
21:49:53,000 DEBUG AbstractBatcher:525 - closing statement
21:49:53,000 DEBUG JDBCExceptionReporter:63 - could not update: [com.mufic.mufix.multiuser.beans.Role#1] [update Role set name=? where RID=?]
java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
        at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1160)
        at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:685)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299)
        at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2268)
        at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2180)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2450)
        at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:993)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:340)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
        at com.mufic.mufix.multiuser.UserFacade.saveUser(UserFacade.java:34)
        at com.mufic.mufix.multiuser.actions.PostInsertUser.execute(PostInsertUser.java:33)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:619)
21:49:53,109  WARN JDBCExceptionReporter:71 - SQL Error: 1205, SQLState: 41000
21:49:53,109 ERROR JDBCExceptionReporter:72 - Lock wait timeout exceeded; try restarting transaction
21:49:53,109 ERROR AbstractFlushingEventListener:300 - Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not update: [com.mufic.mufix.multiuser.beans.Role#1]
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2290)
        at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2180)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2450)
        at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:993)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:340)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
        at com.mufic.mufix.multiuser.UserFacade.saveUser(UserFacade.java:34)
        at com.mufic.mufix.multiuser.actions.PostInsertUser.execute(PostInsertUser.java:33)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
        at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1160)
        at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:685)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299)
        at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2268)
        ... 36 more
21:49:53,359 DEBUG ConnectionManager:472 - registering flush end
21:49:53,359  WARN RequestProcessor:528 - Unhandled Exception thrown: class org.hibernate.exception.GenericJDBCException
21:49:53,484 ERROR [action]:253 - Servlet.service() for servlet action threw exception
org.hibernate.exception.GenericJDBCException: could not update: [com.mufic.mufix.multiuser.beans.Role#1]
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2290)
        at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2180)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2450)
        at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:993)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:340)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
        at com.mufic.mufix.multiuser.UserFacade.saveUser(UserFacade.java:34)
        at com.mufic.mufix.multiuser.actions.PostInsertUser.execute(PostInsertUser.java:33)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
        at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1160)
        at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:685)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299)
        at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2268)
        ... 36 more



Thanks in advance
BISO


Top
 Profile  
 
 Post subject:
PostPosted: Sat Feb 17, 2007 3:28 pm 
Newbie

Joined: Wed Feb 07, 2007 8:26 pm
Posts: 17
Thanks a lot for your help
It works now

BISO


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 19, 2007 10:19 am 
Newbie

Joined: Fri Aug 04, 2006 3:01 pm
Posts: 13
biso wrote:
It works now


I didn't answer yet, but kewl for you pal. For the record, can you post what actually solved the problem, so that future visitors can benefit from this reflection ?

Cheers

L


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 21, 2007 9:17 pm 
Beginner
Beginner

Joined: Wed Oct 25, 2006 12:10 pm
Posts: 41
I have exactly similar situation but unable to find help till now.

BISO please share your solution in resloving the error

Here is my posting http://forum.hibernate.org/viewtopic.ph ... highlight=


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 21, 2007 9:37 pm 
Beginner
Beginner

Joined: Wed Oct 25, 2006 12:10 pm
Posts: 41
I have Many-to-Many Uni-directional relationship i.e. i dont have Set of Users for Role in the mapping file
<set name="users" table="users_roles">
<key column="RID"/>
<many-to-many column="UID" class="User" />
</set>


Is it mandatory to have Many-to-Many Bi-directional relationship in order to persist the data to the link table (i.e. intermediate table users_roles)


Regards
Bansi


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 21, 2007 11:41 pm 
Newbie

Joined: Wed Feb 07, 2007 8:26 pm
Posts: 17
no it is not mandatory. try the solution i posted in the other topic


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 12 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.