来源: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影射策略)相关推荐

  1. (11) ejb学习: Jpa事务管理类型 container 和 bean

    container ( 容器管理 ) : 在(10) ejb学习: Jpa的JTA事务和RESOURCE_LOCAL事务  中采取的是容器管理 bean 类型 :  如下图, 在addStudent中 ...

  2. JPA 配置UUID主键生成策略

    我们知道oracle 有一种主键生成策略是UUID, 用于生成一个不重复的字符串做为主键. 使用UUID 作为主键可以防止恶意猜测主键, 对数据做非法操作. Hibernate 对此也提供了支持, 会 ...

  3. jpa 根据主键生成策略获取id_JPA主键生成策略

    @GeneratedValue: 为一个实体类生成一个唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主键).它有两个属性,分别是strategy和generator. genera ...

  4. JPA的主键生成策略

    数据的唯一性是很平常的要求,但是如果框架不能提供相关的控制而由程序员完全控制是很危险的,在JPA中,有下面四种策略. A.容器自动生成---GeneratorType.AUTO  由JPA自动生成 B ...

  5. (6) ebj学习:ejb使用jpa注解

    一  EJB服务端 1 整体结构 2 代码 PersonManager.java public interface PersonManager {public void addPerson(Strin ...

  6. (5) ebj学习:ejb用jpa操作数据库1

    一 JPA开发持久化Bean 二 配置数据源 三 新建Ejb项目 四 指定JNDI数据源 五 编写entity bean 六 代码 1 目录结构 2 Person.java import javax. ...

  7. jpa 根据主键生成策略获取id_如何在使用JPA和Hibernate时选择id生成策略

    MMTTMM 该API文档都对这个很清楚.所有生成器都实现了org.hibernate.id.IdentifierGenerator接口.这是一个非常简单的界面.一些应用程序可以选择提供自己的专用实现 ...

  8. JPA 主键ID生成策略

    在定义Entity的ID字段时,我们可以使用@GeneratedValue注解指定以何种方式生成数据库的主键ID的值.有几种策略: 1. 默认情况下,是自动生成策略. 比如下边两种方式效果是一样的.如 ...

  9. (12) ejb学习: JPA的传播属性

    一 为什么需要传播属性 service调用图 如上图所示 ,  service2 可能被单独调用,也有可能被service1调用 ,也有可能在其它service中调用, 因此不能使用 UserTran ...

最新文章

  1. 网络工程师_想要记录下来的一些题_5
  2. request对象方法详解
  3. 如何在Google Chrome浏览器中启动JavaScript调试器?
  4. 【CyberSecurityLearning 36】靶场环境搭建(ubuntu系统安装优化及vulhub安装)
  5. apache camel_轻量级的开源集成:Apache Camel还是Spring集成?
  6. TCP滑窗与拥塞控制
  7. 通俗易懂的堆排序C++实现
  8. 时序分析基本概念介绍<input/output delay>
  9. DataSource接口 Connection pooling(连接池
  10. EXPRESS语言与IFC体系
  11. 【解决Windows】修改win10默认开机启动动画
  12. 六爻预测,前沿科学?伪科学?
  13. [Err] 1267 - Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)
  14. 我感觉被骗了,微信内测 “大小号” 功能,同一手机号可注册两个微信
  15. ELK集群部署报错(master not discovered yet, this node has not previously joined a bootstrapped )
  16. 【预训练语言模型】WKLM: Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model
  17. 前端项目发版后用户需要手动刷新页面获取的解决方案
  18. PTA_L1-054 福到了 (15分)
  19. 自动售票机,选择了终点或线路之后,投入足够的纸币或硬币,就可以自动打印或制作出车票,还会自动找回零钱。
  20. 论文阅读笔记《Sim-to-real learning for bipedal locomotion under unsensed dynamic loads》

热门文章

  1. oracle-单行函数
  2. ASP网站实现防止被采集
  3. windows消息机制-4(MFC)
  4. Qt-事件循环概念及循环函数详解
  5. 程序员基本功05表达式中的陷阱
  6. Migw用CMD编译C语言,NOTEPAD++用MinGW编译C,C++语言
  7. java线程runnable_Java 线程状态之 RUNNABLE
  8. std::jthread与std::thread的区别
  9. Qt的qrc资源文件在Visual studio编译出的Qt程序中不能显示问题解决
  10. Android开发之将Android SVG 转 VectorDrawable矢量图的方法