super sonic

Greenhorn
+ Follow
since Jun 19, 2009
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by super sonic

Hi John,
You had mentioned about your book in many of your posts, i am unable to find the book.
i want to explore more about solr relevance score.any help is most welcome..

Thanks
should all-delete-orphan work for both unidirectional and bidirectional (one2many association) ? is there any rule for this ..

I am trying to delete a child element using all-delete-orphan.... but getting following exception.. .


INFO: Checking 0 named queries
Hibernate: select dept0_.id as id0_, dept0_.name as name1_0_ from dept dept0_ where dept0_.id=?
Hibernate: select emp0_.deptid as deptid__, emp0_.id as id__, emp0_.id as id0_, emp0_.name as name0_0_, emp0_.deptid as deptid0_0_ from emp emp0_ where emp0_.deptid=?
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at org.hibernate.collection.AbstractPersistentCollection$IteratorProxy.next(AbstractPersistentCollection.java:357)
at Test.removeUser(Test.java:55)
at Test.main(Test.java:66)

Below is my code :

<hibernate-mapping>
<class name="Employee" table="emp">
<id name="empId" column="id">
<generator class="native"/>
</id>
<property name="empName" column="name"/>
<many-to-one name="deptid" column="deptid"/>
</class>
</hibernate-mapping>

<hibernate-mapping>
<class name="Dept" table="dept">
<id name="deptId" column="id">
<generator class="native"/>
</id>
<property name="deptName" column="name"/>

<set name="emp" cascade="all-delete-orphan">
<key column="deptid"/>
<one-to-many class="Employee"/>
</set>

</class>
</hibernate-mapping>

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Dept dept=(Dept)session.load(Dept.class,new Integer(1));
Iterator<Employee> emps=((Set)dept.getEmp()).iterator();
while(emps.hasNext()){
Employee emp=emps.next();
if(emp.getEmpName().equals("user")){
dept.getEmp().remove(emp);
}
}
tx.commit();
session.close();