`
caiying0504
  • 浏览: 341667 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hbm文件id的配置

阅读更多
有两个实体类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”
请问我的配置文件错在那
分享到:
评论
2 楼 caiying0504 2007-06-25  
谢谢楼上的回答
驱动不能换,因为另一种驱动不支持二次查询,用不了hql
我用唯一外键关联的方式解决了上述的一对一关系
1 楼 rainlife 2007-05-25  
 <id name="id" type="java.lang.Integer" unsaved-value="0">  
             <column name="id" />  
             <generator class="identity" />        
         </id>  

配置文件没有错误,你换一个驱动,或将generator 改成native试试。

相关推荐

    Ant+XDoclet生成hbm文件

    XDoclet则是一个元数据注解处理器,它能够解析Java源代码中的特定注解,并自动生成相应的配置文件,如Hibernate的HBM文件。HBM文件是Hibernate用来映射Java类与数据库表之间关系的XML文件,它定义了对象-关系映射...

    hibernate。hbm.xml配置详解

    Hibernate 是一个流行的 Java 平台上的对象关系映射(ORM)...通过理解并熟练掌握 `hbm.xml` 文件的配置,开发者可以有效地利用 Hibernate 实现对象与数据库之间的无缝映射,提高开发效率并减少数据库操作的复杂性。

    hbm xml配置详解 ssh框架

    在Hibernate中,XML配置文件是连接对象模型与数据库模型的关键,而`.hbm.xml`文件就是这种映射的载体。本文将深入探讨Hibernate的`.hbm.xml`配置文件以及其内部的映射类型。 首先,让我们了解`.hbm.xml`文件的作用...

    在myeclipse中根据表结构生成实体和hbm.xml文件

    在 MyEclipse 中,我们可以使用 Hibernate 根据现有的数据库表结构生成实体和 hbm.xml 配置文件,这样可以避免手动编写 JPA 或 Hibernate 实体类。下面是生成实体和 hbm.xml 文件的步骤: 首先,需要创建一个 JPA ...

    Middlegen插件利用数据库表自动生成Hbm文件

    Middlegen是一款强大的Java持久层开发工具,它主要用于将数据库中的表结构自动转换为Hibernate的映射文件(Hbm文件)。这款插件极大地简化了Java开发者在处理数据持久化时的工作,通过自动化的方式生成必要的代码,...

    structs的配置文件hbm.xml

    ### structs的配置文件hbm.xml知识点详解 #### 一、概述 在介绍具体的配置细节之前,我们先来了解一下struts2、Hibernate3.2以及Spring2.0这三种技术的基本概念及其整合的意义。 1. **Struts2**:是Apache基金会...

    利用hibernate自动生成hbm.xml文件和entity类.doc

    * hbm.xml 文件:用于配置 Hibernate 的映射关系的文件。 * Id.java 文件:如果表中存在复合主键或没有主键,则将生成该文件。 四、 将生成文件整合到项目中 1. 将生成文件放在项目对应路径中:将生成的文件放在...

    《Hibernate 各类映射文件与配置文件模板》HibernateMappingConfig.zip

    - `Course.hbm.xml`:这是一个关于Course实体的映射文件,可能会包含课程ID、课程名、学分等相关属性的映射,以及可能的与其他实体(如Student、Teacher)的关联设置。 通过这个压缩包,开发者可以学习到如何根据...

    代码自动生成工具 javabean hbm 配置文件

    1.终于在这个版本中实现了模板化管理,采用freeMarker模板来生成代码, 真正实现了自定义代码模板; 2.理论上可以生成任何...5.预计下个版本增加从PowserDesigner的 PDM文件,和 CMD文件 直接导入,并生成代码的功能

    SSH笔记-映射文件配置

    Hibernate是Java领域的一个流行ORM框架,HBM文件用于定义数据库对象与Java实体类之间的映射关系。在SSH环境下,可能涉及到如何通过SSH连接到数据库服务器,以及如何配置Hibernate以读取或更新远程数据库的HBM映射...

    hibernate配置文件详解

    Hibernate 配置文件详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面...

    NHibernate2.0 实体类和配置文件生成模板

    HBM文件是XML文件,描述了实体类与数据库表之间的映射关系,包括字段类型、长度、是否为主键、是否可为空等详细信息。使用HBM文件可以让NHibernate自动处理对象到表的转换。 4. NHibernate.inc:这可能是一个包含...

    hbm2ddl属性hbm2ddl属性

    1. **配置文件**:在`hibernate.cfg.xml`文件中,我们可以这样配置`hbm2ddl`属性: ```xml &lt;property name="hibernate.hbm2ddl.auto"&gt;create ``` 这样,每当应用程序启动时,Hibernate都会检查`User`实体类并...

    Oracle自动生成hibernate实体(.java 和.hbm.xml文件)存储过程

    每个实体类对应一个`.hbm.xml`文件,其中包含了类名、属性名、字段类型、主键信息以及关联关系等配置。这些信息让Hibernate能够理解如何在数据库和Java对象之间进行自动的映射和转换。 例如,对于一个名为`User`的...

    hibernate.hbm.xml详解

    总之,`hibernate.hbm.xml`文件是Hibernate的核心配置文件,它清晰地定义了Java对象和数据库表之间的映射关系,以及主键生成策略。熟练掌握其结构和用法,能有效提高Hibernate应用的开发效率和数据管理的准确性。

    oracle的配置文件

    在Hibernate的.hbm.xml配置文件中,每个`&lt;class&gt;`元素代表数据库中的一个表,而`&lt;id&gt;`元素定义了主键的映射,包括主键生成策略。如上文所述,Hibernate提供了多种主键生成策略,包括assigned、hilo、seqhilo、...

    Hibernate使用hbm.xml配置映射关系解析

    Hibernate 是一个流行的对象关系映射(ORM)工具,它提供了使用 XML 文件(hbm.xml)来配置映射关系的方式。这种方式可以将 Java 类与数据库表进行映射,使得开发者可以更方便地访问和操作数据库。 在使用 ...

    hibernate利用配置文件反向生成数据库所有配置文件及方法

    首先,Hibernate的反向工程(Reverse Engineering)功能可以帮助开发者从现有的数据库中生成实体类、持久化映射文件(.hbm.xml)以及相关的配置文件。这极大地简化了数据访问层的开发工作,因为无需手动编写这些繁琐...

Global site tag (gtag.js) - Google Analytics