Hibernate非主属性做外键
来源:互联网 发布:学生开淘宝店 编辑:程序博客网 时间:2024/06/06 02:20
通常,外键约束引用主键。外键约束是一个完整性规则,它保证被引用的表有一行所包含的键值与引用表和给定行中的键值相匹配。
遗留schema有时候会有不遵循简单的"外键引用主键"规则的外键约束。有时候外键引用非主键,一个简单的唯一列,一个自然的非主键。注意,被外键引用的非主键列必须用:unique="true"约束。
hibernate映射中你会遇到property-ref属性,它用来告诉hibernate”这是具名属性的一个镜像" ,property-ref还要求目标属性是唯一的,所以被外键引用的非主键列必须用:unique="true"约束。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="pojo"> <class name="User" table="A_USER" dynamic-insert="true" dynamic-update="true"> <id name="id" column="ID" type="string"> <generator class="uuid.hex"/> </id> <!-- 注意这里加了unique="true",将在被外键引用的非主键列 --> <property name="name" column="NAME" type="string" unique="true"/> <property name="password" column="PASSWORD" type="string"/> <property name="age" type="integer" column="AGE"/> <set name="itemSet" inverse="true" cascade="save-update"> <!-- 注意这里使用了property-ref="name" --> <key column="NAME" property-ref="name" not-null="true"/> <one-to-many class="Item"/> </set> </class> </hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="pojo"> <class name="Item" table="A_ITEM" dynamic-insert="true" dynamic-update="true"> <id name="id" column="ID" type="string"> <generator class="uuid.hex"/> </id> <property name="name" column="ITEMNAME" type="string"/> <property name="desc" column="DESCRIPTION" type="string"/> <property name="price" column="PRICE" type="integer"/> <!-- 注意这里使用了property-ref="name" --> <many-to-one name="user" class="User" column="NAME" property-ref="name"/> </class> </hibernate-mapping>
若不按上述方法写配置文件,则可能会出现非主属性做外键属性名而值是主键值的情况
- Hibernate非主属性做外键
- Hibernate 忽略非数据库字段属性
- Hibernate主配置文件属性
- hibernate annotaion manyToOne 指定外键名,和非空属性
- Hibernate引用对象非主键属性的查询
- hibernate映射集合属性(属性内非持久化类)
- Hibernate属性
- 什么是码,主码,主属性,非主属性
- 使用hibernate注解,如何标识一个属性为非数据库的字段
- Hibernate映射集合属性的两种方式(非关联映射)--基础
- spring+hibernate实体类注解详解(非原创) + cascade属性取值
- Hibernate主配置文件Hibernate.cfg.xml主要属性解释
- 非dom属性介绍
- React 非DOM属性
- hibernate hibernate.hbm2ddl.auto属性
- Hibernate配置文件属性---事务属性
- Hibernate学习--------------------hibernate hibernate.hbm2ddl.auto属性
- Hibernate配置属性
- Android 异常解决方法汇总
- UMLet的安装及使用
- linux Shell编程入门
- BTrace Developer's Guide
- js加入收藏
- Hibernate非主属性做外键
- Android中Style和Theme的使用
- C++学习要点
- Android中Bitmap和Drawable
- 驾驭你的“职场布朗运动” .
- Sublime Text 2报“Decode error - output not utf-8”错误的解决办法
- powerbuilder工程的的open事件以及This apolication needs a script for its open event。窗体的命名
- http://32.duote.org/ha_vmware.zip
- I Think I Need a Houseboat