EJB之JPA(UUID与TABLE影射策略)
来源:http://www.16kan.com/post/217962.html
UUID
package com.cnblogs.pojo;import java.io.Serializable;import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;/*** 定义这是一个entityBean* * @author asus* */ @Entity @Table(name = "person1")// 映射表名称为person public class Person implements Serializable {// 实现可序列化接口.方便远程调用/*** 由于EJB3不支持UUID.所以我们需要用hiberante生成.所以我们需要在类路径下面添加一个包.* 这个包在JBOSSHOME\common\lib下的hibernate-annotations.jar.把这个包引入就可以了.*/@Id@GeneratedValue(generator="uuidgenerator")@GenericGenerator(name="uuidgenerator",strategy="uuid")private String id;@Column(name = "username", unique = false)private String name;@Column(name = "password", nullable = false)private String passwd;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPasswd() {return passwd;}public void setPasswd(String passwd) {this.passwd = passwd;}}
table映射策略
table策略的好处就是方便数据移植,所有的数据库都支持.
使用table策略.主键必须是int或者Long类型.不能是String类型.
package com.cnblogs.pojo;import java.io.Serializable;import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.TableGenerator;/*** 定义这是一个entityBean* * @author asus* */ @Entity @Table(name = "person")// 映射表名称为person public class Person implements Serializable {// 实现可序列化接口.方便远程调用/*** Table生成策略:* * T_ID_GEN表* -------* ID_COULMN_NAME NEXT_ID* User_ID 3* Person_ID 6* 不同的类的ID 10* -------*/@Id@TableGenerator(name="userGenerator", //定义Table策略的名称table="T_ID_GEN", //定义在Table策略中使用的表名,数据库会自动建表.pkColumnName="ID_COLUMN_NAME", //用来区分不同的表的ID的字段名称pkColumnValue="User_ID", //用来区分不同的表的ID的值 也就是不同的类要有不同的id_coulmn_namevalueColumnName="NEXT_ID", //下一个ID的值所存放的字段的名称allocationSize=1 //ID的递增值.如果是1 第一条数据的ID就是1.第2条是2.//如果值为2,第一条数据是1,第2条是3,第3条是5 )@GeneratedValue(strategy=GenerationType.TABLE,generator="userGenerator")private int id;@Column(name = "username", unique = false)private String name;@Column(name = "password", nullable = false)private String passwd;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPasswd() {return passwd;}public void setPasswd(String passwd) {this.passwd = passwd;}}
EJB之JPA(UUID与TABLE影射策略)相关推荐
- (11) ejb学习: Jpa事务管理类型 container 和 bean
container ( 容器管理 ) : 在(10) ejb学习: Jpa的JTA事务和RESOURCE_LOCAL事务 中采取的是容器管理 bean 类型 : 如下图, 在addStudent中 ...
- JPA 配置UUID主键生成策略
我们知道oracle 有一种主键生成策略是UUID, 用于生成一个不重复的字符串做为主键. 使用UUID 作为主键可以防止恶意猜测主键, 对数据做非法操作. Hibernate 对此也提供了支持, 会 ...
- jpa 根据主键生成策略获取id_JPA主键生成策略
@GeneratedValue: 为一个实体类生成一个唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主键).它有两个属性,分别是strategy和generator. genera ...
- JPA的主键生成策略
数据的唯一性是很平常的要求,但是如果框架不能提供相关的控制而由程序员完全控制是很危险的,在JPA中,有下面四种策略. A.容器自动生成---GeneratorType.AUTO 由JPA自动生成 B ...
- (6) ebj学习:ejb使用jpa注解
一 EJB服务端 1 整体结构 2 代码 PersonManager.java public interface PersonManager {public void addPerson(Strin ...
- (5) ebj学习:ejb用jpa操作数据库1
一 JPA开发持久化Bean 二 配置数据源 三 新建Ejb项目 四 指定JNDI数据源 五 编写entity bean 六 代码 1 目录结构 2 Person.java import javax. ...
- jpa 根据主键生成策略获取id_如何在使用JPA和Hibernate时选择id生成策略
MMTTMM 该API文档都对这个很清楚.所有生成器都实现了org.hibernate.id.IdentifierGenerator接口.这是一个非常简单的界面.一些应用程序可以选择提供自己的专用实现 ...
- JPA 主键ID生成策略
在定义Entity的ID字段时,我们可以使用@GeneratedValue注解指定以何种方式生成数据库的主键ID的值.有几种策略: 1. 默认情况下,是自动生成策略. 比如下边两种方式效果是一样的.如 ...
- (12) ejb学习: JPA的传播属性
一 为什么需要传播属性 service调用图 如上图所示 , service2 可能被单独调用,也有可能被service1调用 ,也有可能在其它service中调用, 因此不能使用 UserTran ...
最新文章
- 网络工程师_想要记录下来的一些题_5
- request对象方法详解
- 如何在Google Chrome浏览器中启动JavaScript调试器?
- 【CyberSecurityLearning 36】靶场环境搭建(ubuntu系统安装优化及vulhub安装)
- apache camel_轻量级的开源集成:Apache Camel还是Spring集成?
- TCP滑窗与拥塞控制
- 通俗易懂的堆排序C++实现
- 时序分析基本概念介绍<input/output delay>
- DataSource接口 Connection pooling(连接池
- EXPRESS语言与IFC体系
- 【解决Windows】修改win10默认开机启动动画
- 六爻预测,前沿科学?伪科学?
- [Err] 1267 - Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)
- 我感觉被骗了,微信内测 “大小号” 功能,同一手机号可注册两个微信
- ELK集群部署报错(master not discovered yet, this node has not previously joined a bootstrapped )
- 【预训练语言模型】WKLM: Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model
- 前端项目发版后用户需要手动刷新页面获取的解决方案
- PTA_L1-054 福到了 (15分)
- 自动售票机,选择了终点或线路之后,投入足够的纸币或硬币,就可以自动打印或制作出车票,还会自动找回零钱。
- 论文阅读笔记《Sim-to-real learning for bipedal locomotion under unsensed dynamic loads》
热门文章
- oracle-单行函数
- ASP网站实现防止被采集
- windows消息机制-4(MFC)
- Qt-事件循环概念及循环函数详解
- 程序员基本功05表达式中的陷阱
- Migw用CMD编译C语言,NOTEPAD++用MinGW编译C,C++语言
- java线程runnable_Java 线程状态之 RUNNABLE
- std::jthread与std::thread的区别
- Qt的qrc资源文件在Visual studio编译出的Qt程序中不能显示问题解决
- Android开发之将Android SVG 转 VectorDrawable矢量图的方法