03.06
照着网上的hibernate many-to-one示例,一直查不出关联表的数据。2个映射文件如下。
<?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>
<class name=”com.xxx.domain.Software” table=”software” >
<id name=”id” type=”int”>
<column name=”id” />
<generator class=”increment” />
</id>
<property name=”name” type=”string”>
<column name=”name” length=”50″ />
</property>
<many-to-one name=”softwareCategory” class=”com.xxx.domain.SoftwareCategory”
column=”category_id” cascade=”all”>
</many-to-one>
</class>
</hibernate-mapping>
<?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>
<class name=”com.xxx.domain.SoftwareCategory” table=”software_category” catalog=”wifi99″>
<id name=”id” type=”int”>
<column name=”id” />
<generator class=”increment” />
</id>
<property name=”name” type=”string”>
<column name=”name” length=”50″ />
</property>
</class>
</hibernate-mapping>
根据id查询software对象,关联的softwareCategory为null。检查数据库里数据,确定没问题。google上查了半天,原因是配置many-to-one时要没有加上lazy=”false”。