论坛首页 Java企业应用论坛

hbm文件id的配置

浏览 4186 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-25  
有两个实体类user和point
它们是一对一的关系
这是我的hbm文件

point.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="org.ankang06.external.trainingschool.core.Point"
		table="TRAININGSCHOOL_POINT">
		<id name="id" column="id" type="java.lang.Integer">  
			<generator class="foreign">       
				<param name="porperty">user</param>  
			</generator>  
		</id>
		<property name="allPoint" type="java.lang.Integer">
			<column name="all_point" />
		</property> 
		<property name="knowInPoint" type="java.lang.Integer">
			<column name="know_in_point" />  
		</property> 
		<property name="knowOutPoint" type="java.lang.Integer">
			<column name="know_out_point" />
		</property> 
		<!-- 设置user类与point类的一对一关系 -->
		<one-to-one name="user" class="org.ankang06.external.trainingschool.core.User" constrained="true"/>
		<!-- 设置point类与pointHistory类的一对多关系 -->	
		<set name="pointHistory" inverse="true">
			<key column="point_id" />   
			<one-to-many  
				class="org.ankang06.external.trainingschool.core.PointHistory" />
		</set>	
	</class> 
</hibernate-mapping>

user.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="org.ankang06.external.trainingschool.core.User"
		table="TRAININGSCHOOL_USER">
		<id name="id" type="java.lang.Integer" unsaved-value="0">
			<column name="id" />
			<generator class="identity" />      
		</id>
		<property name="userID" type="java.lang.Integer" unique="true"
			index="INDEX_USER_ID">
			<column name="user_id" not-null="true" />
		</property>
		<property name="name" type="java.lang.String">
			<column name="name" length="50" not-null="true" />
		</property>
		<property name="otherName" type="java.lang.String">
			<column name="other_name" length="50" />
		</property>
		<property name="type" type="java.lang.Integer">
			<column name="type" />
		</property>
		<property name="gender" type="java.lang.Integer">
			<column name="gender" />
		</property>
		<property name="introduce" type="java.lang.String">
			<column name="introduce" length="50" />
		</property>
		<property name="companyName" type="java.lang.String">
			<column name="company_name" length="50" />
		</property>
		<property name="provinceName" type="java.lang.String">
			<column name="province_name" length="50" />
		</property>
		<!-- 设置User类与UserCircle类的多对一关系 -->
		<many-to-one name="userCircle" column="user_circle_id"
			foreign-key="FK_USER_USERCIRCLE"
			class="org.ankang06.external.trainingschool.core.UserCircle" />
		<!-- 设置User类与Question类的一对多关系 -->
		<bag name="questions" cascade="all" lazy="false">
			<key column="user_id" foreign-key="FK_QUESTION_USER" />
			<one-to-many
				class="org.ankang06.external.trainingschool.core.Question" />
		</bag>
		<!-- 设置User类与Answer类的一对多关系 -->
		<bag name="answers" cascade="all" lazy="false">
			<key column="user_id" foreign-key="FK_ANSWER_USER" />
			<one-to-many
				class="org.ankang06.external.trainingschool.core.Answer" />
		</bag>
		<!-- 设置User类与UserBulletin类的一对多关系 -->
		<bag name="bulletins" cascade="all" lazy="false">
			<key column="user_id" foreign-key="FK_USERBULLETIN_USER" />
			<one-to-many  
				class="org.ankang06.external.trainingschool.core.UserBulletin" />
		</bag> 
		<!-- 设置User类(message的接受方)与UserMessage类的一对多关系 -->
		<bag name="toMessages" inverse="true">
			<key>
				<column name="touser_id" /> 
			</key>
			<one-to-many
				class="org.ankang06.external.trainingschool.core.UserMessage" />
		</bag>
		<!-- 设置User类(message的发送方)与UserMessage类的一对多关系 -->
		<bag name="fromMessages" inverse="true">
			<key>
				<column name="fromuser_id" />
			</key>
			<one-to-many
				class="org.ankang06.external.trainingschool.core.UserMessage" />
		</bag>
		<!-- 设置user类与point类的一对一关系 -->
		<one-to-one name="point"
			class="org.ankang06.external.trainingschool.core.Point" cascade="all"
			outer-join="true" />
	</class>   
</hibernate-mapping>
  

我想用主键关联的形式标明他们的一对一关系
我使用的mssql,用jtds驱动
在使用工具生成表的时候jboos报出以下错误
“could not instantiate id generator”
请问我的配置文件错在那
   发表时间:2007-05-25  
 <id name="id" type="java.lang.Integer" unsaved-value="0">  
             <column name="id" />  
             <generator class="identity" />        
         </id>  

配置文件没有错误,你换一个驱动,或将generator 改成native试试。
0 请登录后投票
   发表时间:2007-06-25  
谢谢楼上的回答
驱动不能换,因为另一种驱动不支持二次查询,用不了hql
我用唯一外键关联的方式解决了上述的一对一关系
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics