Rhythmk 学习 Hibernate 07 - Hibernate annotation 实体注解
参考:
http://docs.jboss.org/hibernate/annotations/3.4/reference/zh_cn/html_single/
1、系统配置:
可以通过使用 mapping的 resource,于class 属性混合配置
<mapping resource="com/rhythmk/model/product.hbm.xml" />
<mapping class="com.rhythmk.model.User"></mapping>
在创建SessionFactory 也可以通过代码完成映射关联:
sessionFactory = new AnnotationConfiguration()
.addPackage("test.animals") //the fully qualified package name
.addAnnotatedClass(Flight.class)
.addAnnotatedClass(Sky.class)
.buildSessionFactory();
2、实体:
》每一个持久化POJO类都是一个实体bean,这可以通过在类的定义中使用@Entity
》hibernate的访问类型分别为 field或property. EJ3规范要求在需要访问的元素上进行注解声明,例如,如果访问类型为 property就要在getter方法上进行注解声明, 如果访问类型为 field就要在字段上进行注解声明.应该尽量避免混合使用这两种访问类型
》实体bean中所有的非static非transient的属性都可以被持久化, 除非你将其注解为@Transient.
@Entity
@Table(name = "t_user")
public class User { @Id
@GeneratedValue
public Integer getUserID() {
return userID;
} @Column(name = "create_time")
public Date getCreateTime() {
return createTime;
} public void setUserID(Integer userID) {
this.userID = userID;
}
....... }
@Column(
name="columnName"; (1) 可选,列名(默认值是属性名)
boolean unique() default false; (2) 可选,是否在该列上设置唯一约束(默认值false)
boolean nullable() default true; (3) 可选,是否设置该列的值可以为空(默认值false)
boolean insertable() default true; (4) 可选,该列是否作为生成的insert语句中的一个列(默认值true)
boolean updatable() default true; (5) 可选,该列是否作为生成的update语句中的一个列(默认值true)
String columnDefinition() default ""; (6) 可选: 为这个特定列覆盖SQL DDL片段 (这可能导致无法在不同数据库间移植)
String table() default ""; (7) 可选,定义对应的表(默认为主表)
int length() default 255; (8) 可选,列长度(默认值255)
int precision() default 0; // decimal precision (9) 可选,列十进制精度(decimal precision)(默认值0)
int scale() default 0; // decimal scale (10) 可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)
3、映射继承关系:
- 每个类一张表(Table per class)策略: 在Hibernate中对应<union-class>元素:
- 每个类层次结构一张表(Single table per class hierarchy)策略:在Hibernate中对应<subclass>元素
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
name="planetype",
discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue("Plane")
public class Plane { ... } @Entity
@DiscriminatorValue("A320")
public class A320 extends Plane { ... }- 连接的子类(Joined subclasses)策略:在Hibernate中对应 <joined-subclass>元素
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Boat implements Serializable { ... } @Entity
public class Ferry extends Boat { ... } @Entity
@PrimaryKeyJoinColumn(name="BOAT_ID")
public class AmericaCupClass extends Boat { ... }
Rhythmk 学习 Hibernate 07 - Hibernate annotation 实体注解的更多相关文章
- hibernate学习三(使用Annotation,注解)
一.新建一个工程hibernate_02_HelloWorld_Annotation(复制01工程并重命名); 二.新建一个实体类teacher.java,数据库中新建teacher表; import ...
- Hibernate or JPA Annotation中BLOB、CLOB注解写法
BLOB和CLOB都是大字段类型,BLOB是按二进制字节码来存储的,而CLOB是可以直接存储字符串的. 在hibernate or JPA Annotation中,实体BLOB.CLOB类型的注解与普 ...
- Hibernate学习一:Hibernate注解CascadeType
http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hi ...
- Rhythmk 学习 Hibernate 06 - Hibernate 表间关系 [One To One]
1.One To One 单相 背景: 古代一个老婆 只能关联一个老公 husband.java package com.rhythmk.model; public class husband { ...
- Spring + Spring MVC + Hibernate项目开发集成(注解)
在自己从事的项目中都是使用xml配置的方式来进行的,随着项目的越来越大,会发现配置文件会相当的庞大,这个不利于项目的进行和后期的维护.于是考虑使用注解的方式来进行项目的开发,前些日子就抽空学习了一下. ...
- Spring 4 MVC+Hibernate 4+MySQL+Maven使用注解集成实例
Spring 4 MVC+Hibernate 4+MySQL+Maven使用注解集成实例 转自:通过注解的方式集成Spring 4 MVC+Hibernate 4+MySQL+Maven,开发项目样例 ...
- 转:HIBERNATE一些_方法_@注解_代码示例---写的非常好
HIBERNATE一些_方法_@注解_代码示例操作数据库7步骤 : 1 创建一个SessionFactory对象 2 创建Session对象 3 开启事务Transaction : hibernate ...
- 实训第二天早上--hibernate之配置文件映射和注解
hibernate 逐步优化第一步 只按照步骤来提取的jre包导入错误第二步 继续封装,把增删改查提取出来,同时进行代码的封装HQL语句 be stranger in the code .be fo ...
- [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- mysql--------命令来操作表
常用的通过mysql命令来更改表结构的一些sql语句,包括添加.删除.修改字段.调整字段顺序. 添加字段: alter table `user_movement_log` Add column Gat ...
- 水晶报表VS2010防止出现用户登录问题
1.联合查询,采用视图办法 2.借用如下语句 using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared; ...
- less 全局变量使用
less 全局变量使用 忽然想定义一个变量,但是却需要每个 .vue 文件都需要单独引入这个全局变量才可以,导致很多重复不必要的工作,因而得寻找一种可以任何地方都可以访问的方法 借助换肤这个功能 sa ...
- STM32知识点纪要
1.GPIO BSRR(端口位设置寄存器)是赋1相应IO拉高,赋0无影响 BRR(端口位清除寄存器)是是赋1相应IO拉低,赋0无影响 2.UART 连线TX—TX,RX—RX 3.JTAG和SWD接口 ...
- halcon之扫描文档祛底色
halcon之扫描文档祛底色增 很多扫描APP都有祛底色的功能:用于改善成像质量,通常扫描后的图像可能会用于存档或 ...
- git 错误 fatal: loose object...is corrupt
错误描述: error: object file .git/objects/9a/83e9c5b3d697d12a2e315e1777ceaf27ea1bab is empty fatal: loos ...
- 使用jquery获取url以及jquery获取url参数的方法(转)
使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下 1.window.location.href; 其实只是用到了javas ...
- HDU4819 Mosaic【树套树】
LINK 题目大意 给你一个\(n*n\)矩阵,每个点有初始权值 q次询问每次把一个矩形的中心节点变成这个矩形中最大值和最小值的平均数 思路 很显然的树套树啊 就是一开始傻逼了没想到怎么去维护这个东西 ...
- 浅谈c#垃圾回收机制(GC)
写了一个window服务,循环更新sqlite记录,内存一点点稳步增长.三天后,内存溢出.于是,我从自己的代码入手,查找到底哪儿占用内存释放不掉,最终明确是调用servicestack.ormlite ...
- java设计模式--七大原则
2016-05-14 20:45:38 设计模式到底是五大.六大还是七大,一直傻傻分不清楚,网上总是有说那些原则可以归为一个,我纠结了半天,突然发现自己是舍本逐末了,只要清楚这些原则的设计思想,其他的 ...