Hibernate注解(一)之持久化实体
翻译自 Hibernate Annotations
1. 创建POJO作为持久化实体
每个持久化POJO类都是一个实体,并使用 @Entity注解(在类级别)声明:
@Entity
public class Flight implements Serializable {Long id;@Idpublic Long getId() { return id; }public void setId(Long id) { this.id = id; }
}
@Entity将该类声明为一个实体(即一个持久的POJO类),@Id声明该实体的标识符属性。其他映射声明是隐式的。类Flight被映射到Flight表,使用列ID作为其主键列。
注意:JPA规范的核心是异常配置的概念。
根据是否注释字段或方法,Hibernate使用的访问类型将为field或 property。EJB3规范要求您对将要访问的元素类型声明注释,例如,如果使用property访问权限,则使用getter方法;如果使用访问权限,则使用该字段field。应该避免在两个字段和方法中混合注释。Hibernate会从@Idor 的位置猜测访问类型@EmbeddedId。
1.1. 定义表格
@Table被设置在课堂级别; 它允许您为实体映射定义表,目录和模式名称。如果no @Table定义,则使用默认值:实体的非限定类名称。
@ Entity
@ Table (name = “tbl_sky” )
public class Sky implements Serializable { ... }
该@Table元素包含一个 schema和catalog属性,如果它们需要被定义。您还可以使用@UniqueConstraint注释连同@Table(为了绑定到单个列的唯一约束,建议使用该 @Column.unique方法(参考以@Column获取更多信息))来 为表定义唯一约束。
@ Table (name = “tbl_sky” ,uniqueConstraints = { @ UniqueConstraint (columnNames = { “month” ,“day” })} )
一个唯一的约束被应用到元组month,day。请注意该columnNames数组引用逻辑列名称。
逻辑列名由Hibernate NamingStrategy实现定义 。默认的JPA命名策略使用物理列名称作为逻辑列名,但如果您使用自定义NamingStrategy 实现将fld_附加到所有列中,它可能会有所不同。请注意,当明确设置列名称时,逻辑列名称不一定等于属性名称esp。除非你重写NamingStrategy,否则你不应该担心。
1.2.版本控制乐观锁定
您可以使用@Version注释向实体添加乐观锁定功能 :
@Entity
public class Flight implements Serializable {
...@Version@Column(name="OPTLOCK")public Integer getVersion() { ... }
}
版本属性将被映射到 OPTLOCK列,实体管理器将使用它来检测冲突更新(防止丢失的更新,否则您可能会看到上次提交 - 赢取策略)。
版本列可以是数字(推荐的解决方案)或时间戳。Hibernate支持任何种类的类型,只要你定义并实现适当的 UserVersionType。
应用程序不得以任何方式更改由Hibernate设置的版本号。要人为增加版本号,请查看Hibernate Entity Manager的参考文档 LockModeType.OPTIMISTIC_FORCE_INCREMENT或 LockModeType.PESSIMISTIC_FORCE_INCREMENT。
Hibernate注解(一)之持久化实体相关推荐
- Hibernate 注解学习
/** * @author liuguangyi * @content ejb3注解的API定义在javax.persistence.*包里面. * * 注释说明: * @Entity -- 将一个类 ...
- Hibernate 注解配置
近几年来,注解方式的配置因其简单易用的特点深受广大程序员的青睐,Hibernate也添加了对注解配置的支持.接下来我们就以论坛系统为例来讲解基于注解配置实体类和表的映射关系,以及实体和实体的关联关系. ...
- Hibernate注解使用以及Spring整合
(1) 简介: 在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准.它非常强大.灵活,而且具备了优异的性能.在本文中,我们将了解如何使用Java 5 注释来简化Hiber ...
- Hibernate注解详解(超全面)
注解虽然配置简单易懂,但是对于复杂点的数据结构,配置起来反而比xml难(例如用xml配置,因为有帮助文件dtd的支持,因此能很好的利用提示来帮助编程,而注解代码提示不会呈现出项目中所有相关的类,如果你 ...
- Hibernate之深入理解持久化对象
持久化是将程序数据在持久化状态和瞬时状态间转换的机制,持久化类可以被hibernate保存到数据库并且从数据库中读取的类.简而言之,一个对象一旦被持久化了,那么这个对象的某个属性一旦改变了,数据库中的 ...
- Hibernate注解完整文档
第 2 章 实体Bean 第 2 章 实体Bean 2.1. 简介 本章内容覆盖了EJB3.0实体bean的注解规范以及Hibernate特有的扩展. 2.2. 用EJB3注解进行映射 现 ...
- Hibernate 注解映射
首先要创建要映射的实体类 一对多映射,一个人可以有多个收货地址 User.java package star.july.b_annotation; import java.util.HashSet; ...
- Hibernate注解开发-PO类注解配置
在hibernate中我们使用注解,可以帮助我们简化hbm文件配置. hibernate.cfg.xml配置 <?xml version="1.0" encoding=&qu ...
- Hibernate学习之Hibernate注解总结
Hibernate学习之Hibernate注解总结http://www.bieryun.com/3269.html 一.类级别的注解 @Entity name:表的名字(可选)一般表名和类名相同 必须 ...
最新文章
- Nagios监控Dell服务器硬件状态
- 数据结构源码笔记(C语言):二叉排序树的基本操作算法
- 如何在mac上安装python3_在Mac上安装Python 3.3
- 腾达W303R v3 无线路由器使用移动光纤无法打开视频的设置方法
- Redis客户端命令行redis-cli操作
- mysql客户端工具的使用
- 95-855-040-源码-调度-Flink Schedule Mode 调度模式
- 移动管理进步显著 企业仍然面临风险
- zynq processing system 参数设置_【正点原子FPGA连载】第六章自定义IP核-呼吸灯实验-领航者 ZYNQ 之嵌入式开发指南...
- vb2008如何连接mysql_VB如何连接ACCESS数据库详解
- 微理财与玖富小金票接口对接项目文档
- 4.OpenCV视频处理
- 2021年海河英才计划天津落户天津最详细过程
- VirtualBox安装CentOS5.5 Insert Guest Additions CD image…(HOST+D)
- C# 正则表达式 Regex类的使用
- 7-15 福到了 c语言,福到啦L1-6 福到了(15 分) “
- HIFIVE音乐开放平台音乐api接口文档!
- C语言|从入门到尽量别放弃
- GoldWave 音频截取工具
- IIS的ARR搭建本地服务器的不停机更新(负载均衡,分布式服务器,集群)
热门文章
- ajax option请求后无post请求_ThingJS:一种浏览器、服务器和技术的新组合方法——Ajax...
- [Java基础]Junit测试
- 对一组同构对象用单数组表示法实现(算法导论第十章10.3-2)
- linux启动mqtt_linux下安装MQTT服务器 - EMQTT
- Java将五个整数存入整形数组_异常处理:从命令行输入5个整数,放入一整型数组,然后打印输出。。。...
- Windows上搭建EMQTT服务器
- Pocketflow 使用
- miller_rabin 证明与实现
- 【UOJ575】光伏元件【网络流建图】【上下界网络流】【费用流】
- Hamburger Steak