EJB之JPA(UUID与TABLE影射策略)
生活随笔
收集整理的這篇文章主要介紹了
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影射策略)的全部內容,希望文章能夠幫你解決所遇到的問題。