package com.data.beans;import java.util.Set;public class Type {
private int id;
private String name;
private String path;
    private Set<Information> informations;
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPath() {
return path;
} public void setPath(String path) {
this.path = path;
} public Set<Information> getInformations() {
return informations;
} public void setInformations(Set<Information> informations) {
this.informations = informations;
}

}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.data.beans">
 <class name="Information" table="information">
  <id column="id" name="id">
   <generator class="identity"/>
  </id>
  <property column="name" generated="never" lazy="false" name="name"/>
  <property column="path" generated="never" lazy="false" name="path"/>
  <many-to-one class="com.data.beans.Type" fetch="select" name="type" lazy="false">
   <column name="typeId"/>
  </many-to-one>
 </class>
</hibernate-mapping>
package com.data.beans;import java.util.Set;public class Type {
private int id;
private String name;
private String path;
    private Set<Information> informations;
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPath() {
return path;
} public void setPath(String path) {
this.path = path;
} public Set<Information> getInformations() {
return informations;
} public void setInformations(Set<Information> informations) {
this.informations = informations;
}

}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.data.beans">
<class name="Type" table="type">
<id name="id" column="id">
<generator class="identity"/>
</id>
<property name="name" column="name"/>
<property name="path" column="path"/>

<set name="informations" inverse="true" lazy="false">
<key>
<column name="id" />
</key>
<one-to-many class="com.data.beans.Information"/>
</set>
</class>
</hibernate-mapping>
异常
java.util.NoSuchElementException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at org.hibernate.collection.AbstractPersistentCollection$IteratorProxy.next(AbstractPersistentCollection.java:577)
at TypeTest.testFindById(TypeTest.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:79)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)

解决方案 »

  1.   

    你的配置有问题,我给你一个示例哈。<many-to-one name="department" column="department_id" />
    //这里的name就是你的外键(我一般这样写),column就是将来跟部门表做关联用的。上面是员工表配置。
    下面是部门表配置。<set name="emps">
      <key column="department_id" />
      <one-to-many class="com.le.domain.Employee" />
    </set>
    //这里的name随便给一个就行了,但是key必须是员工表的many-to-one的column,必须一样。而且不推荐你用关键字,就是type,type在数据库和java中都是关键字吧?所以用一个别的代替,哪怕加一个下划线啊
      

  2.   

    没看懂,感觉你的两个实体bean一样的