大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > Java技巧 > EJB之JPA(UUID与TABLE影射策略)

EJB之JPA(UUID与TABLE影射策略)

关键词:JavaEJBEJB之JPA(UUID与TABLE影射策  阅读(586) 赞(11)

[摘要]本文主要是对EJB之JPA(UUID与TABLE影射策略)的讲解,希望对大家学习EJB之JPA(UUID与TABLE影射策略)有所帮助。
    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”)// 映射表名称为personpublic 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”)// 映射表名称为personpublic 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=“http://www.cnblogs.com/-10086/archive/2012/09/15/User_ID”,
   
    //用来区分不同的表的ID的值 也就是不同的类要有不同的id_coulmn_name
   
    valueColumnName=“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;
   
    }}
   
    以上就是关于UUID和TABLE策略。下一章是关于属性映射。



相关评论