Hibernate学习笔记(二)【标识符及基本级联配置】
来源:互联网 发布:高一历史优化设计答案 编辑:程序博客网 时间:2024/05/17 00:06
标识符
- increment 用于代理主键.由Hibernate自增方式生成标识符,每次增量为1
- identity 同上。由底层数据库生成标识符.前提是要数据库支持自增
- sequence 同上。由底层数据库生成标识符.前提是要数据库支持序列
- hilo 同上。由Hibernate根据high/low算法生成标识符
- native 同上。根据数据库的支持,选择identity,sequence或hilo
- uuid.hex 同上。由Hibernate采用UUID算法生成字符串形式的标识符
- assigned 用于自然主键。由Java代码通过setId()生成标识符。
- 几种常用数据库可以使用的标识符生成器:
- 1. MySQL:identity,increment,hilo,native
- 2. MS SQL Server:identity,increment,hilo,native
- 3. Oracle:sequence,seqhilo,hilo,increment,native
- 4. 跨平台:native
IdentityTester.hbm.xml
- <span style="color: rgb(0, 0, 255); "><hibernate-mapping>
- <class name="mypack.IdentityTester" table="IDENTITY_TESTER">
- <id name="id" type="long" column="ID">
- <generator class="identity"/>
- </id>
- <property name="name" type="string" column="NAME"/>
- </class>
- </hibernate-mapping></span>
IncrementTester.hbm.xml
- <span style="color: rgb(0, 0, 255); "><hibernate-mapping>
- <class name="mypack.IncrementTester" table="INCREMENT_TESTER">
- <id name="id" type="long" column="ID">
- <meta attribute="scope-set">private</meta>
- <generator class="increment"/>
- </id>
- <property name="name" type="string" column="NAME"/>
- </class>
- </hibernate-mapping></span>
NativeTester.hbm.xml
- <span style="color: rgb(0, 0, 255); "><hibernate-mapping>
- <class name="mypack.NativeTester" table="NATIVE_TESTER">
- <id name="id" type="long" column="ID">
- <generator class="native"/>
- </id>
- <property name="name" type="string" column="NAME"/>
- </class>
- </hibernate-mapping></span>
HiloTester.hbm.xml 【101 201 301】
- <span style="color: rgb(0, 0, 255); "><hibernate-mapping>
- <class name="mypack.HiloTester" table="HILO_TESTER">
- <id name="id" type="long" column="ID">
- <generator class="hilo">
- <param name="table">hi_value</param>
- <param name="column">next_value</param>
- <param name="max_lo">100</param>
- </generator>
- </id>
- <property name="name" type="string" column="NAME" />
- </class>
- </hibernate-mapping></span>
Squence.hbm.xml
- <generator class="sequence”>
- <param name="squence”>test_id_seq</param>
- </generator>
Team.hbm.xml 【inverse="true" cascade="all-delete-orphan"】
- <span style="color:#0000ff;"><hibernate-mapping>
- <class name="mypack.Team" table="TEAMS">
- <id name="id" type="long" column="ID">
- <generator class="increment"/>
- </id>
- <property name="name" type="string" column="NAME"/>
- <set name="monkeys"
- cascade="all-delete-orphan"
- inverse="true">
- <key column="TEAM_ID"/>
- <one-to-many class="mypack.Monkey"/>
- </set>
- </class>
- </hibernate-mapping></span>
Monkey.hbm.xml 【 none delete all delete-orphan all-delete-orphan 】
- <hibernate-mapping>
- <class name="mypack.Monkey" table="MONKEYS">
- <id name="id" type="long" column="ID">
- <generator class="increment"/>
- </id>
- <property name="name" type="string" column="NAME"/>
- <!--mapping with cascade -->
- <many-to-one
- name="team"
- column="TEAM_ID"
- class="mypack.Team"
- cascade="save-update" <!— none delete all delete-orphan all-delete-orphan -->
- lazy="false" <!-- proxy -->
- />
- </class>
- </hibernate-mapping>
- tx = session.beginTransaction();
- Team team = new Team("BULL", new HashSet<Monkey>());
- Monkey monkey = new Monkey();
- monkey.setName("Tom");
- monkey.setTeam(team);
- team.getMonkeys().add(monkey);
- session.save(team);
- tx.commit();
- tx =session.beginTransaction();
- Team team =(Team) session.load(Team.class, teamId);
- Monkey monkey =(Monkey) team.getMonkeys().iterator().next();
- // 解除team和Monkey的关联关系
- team.getMonkeys().remove(monkey);
- monkey.setTeam(null);
- tx.commit();
0 0
- Hibernate学习笔记(二)【标识符及基本级联配置】
- Hibernate学习笔记(二)【标识符及基本级联配置】
- Hibernate学习笔记(二)基本配置
- Hibernate学习笔记(二)——Hibernate的一些基本配置
- 【Hibernate学习笔记】对象标识符(OID)
- SpringSecurity学习笔记之二:SpringSecurity结构及基本配置
- Hibernate学习笔记:级联操作
- Hibernate学习笔记:级联操作
- Hibernate学习笔记(二)----Hibernate基础配置
- hibernate笔记(一)hibernate基本配置
- Django学习笔记(二)--基本语法及地址对应
- hibernate学习笔记13--级联设置
- Java学习笔记(二)——标识符、关键字
- nginx 学习笔记二(基本配置&优化)
- Hibernate学习 笔记(二)
- Hibernate学习笔记(二)
- Hibernate学习笔记(二)
- hibernate学习笔记(二)
- android测试详解_2-Building Local Unit Tests-本地单元测试
- 说说建站那些事
- 收获,不止Oracle_Oracle物理体系
- 【JQuery】图片灯箱插件——lightBox
- 使用安卓注解时,Fragment显示过程中各方法执行的先后顺序
- Hibernate学习笔记(二)【标识符及基本级联配置】
- zzuoj 10456: 最长匹配子串 【思维】
- 用 Swift、Foursquare API 和 Realm 創建一個咖啡店 App
- 解决android控件事件冲突
- 蓝牙Ibeacon室内定位和微信摇一摇周边原理分析
- angularjs使用过程中的一些小知识(此文章随时更改)
- 通过Ajax实现无刷新分页
- Swift开源库
- Hibernate学习笔记(三)【配置详解】