JPAのエンティティ

17938 ワード

エンティティは、永続化されたレルムオブジェクトです.通常、エンティティはリレーショナル・データベースのテーブルを表し、エンティティのインスタンスはテーブルのローに対応します.
JPA規範の実体に対する要求:
1、エンティティクラスはjavaxを使用する必要があります.persistence.Entityは注記(@Entity)を行います.
2、エンティティクラスには、共通または保護された空のパラメータ構築方法が必要です.
3、エンティティクラスはfinalとして宣言することはできません.メソッドと永続化が必要な属性もfinalとして宣言することはできません.
4.フリーステートのソリッドオブジェクトを値で渡す必要がある場合は、Serializableインタフェースを実装する必要があります.
5、エンティティークラスはエンティティークラスと非エンティティークラスを継承し、非エンティティークラスはエンティティークラスを継承します.
6、永続化インスタンス変数は、エンティティクラスに直接アクセスできるメソッドのみを使用して、プライベート、保護された、またはプライベートパッケージとして宣言する必要があります.
JAPエンティティークラスでよく使用される注記:
1,@Entityレルムオブジェクトは、データベースに保存する必要があることを示すエンティティとしてマークされます.
2,@Table@Table(name="table_name")対応するテーブルをname属性で指定します.
3,@Idは対応するフィールドがテーブルのプライマリ・キーであることを示す.
4,@GeneratedValueプライマリ・キーの生成ポリシー.
5,@Column@Column(name="col_name"、nullable=true,length=32)対応するテーブルのカラム名をname属性で指定し、nullableは空であるかどうかを指定し、lengthはカラムの長さを指定します.
6、@Temporal@Temporal(TemporalType.Date)は時間タイプを指定し、データベースは時間のタイプに対して厳格な区分がある.
7,@Version「コミットバージョンは、更新を実行するために現在のバージョンを記録するよりも大きくなければならない」という楽観的なロックポリシー.
8、@Transient変数をデータベースに永続化しない
9、@Enumeratedは列挙を使用します.@Enumerated(EnumType.STRING)は列挙を使用する値を表し、@Enumerated(EnumType.ORDINAL)は列挙値を使用するインデックスを表します.   
10,@Lobは大きなテキストとバイナリデータを処理する.
 
 
エンティティの例:
  
  1 package com.cndatacom.jpa.entity;
  2 
  3 import java.io.Serializable;
  4 import java.sql.Timestamp;
  5 import java.util.Date;
  6 
  7 import javax.persistence.Basic;
  8 import javax.persistence.Column;
  9 import javax.persistence.Entity;
 10 import javax.persistence.EnumType;
 11 import javax.persistence.Enumerated;
 12 import javax.persistence.FetchType;
 13 import javax.persistence.GeneratedValue;
 14 import javax.persistence.GenerationType;
 15 import javax.persistence.Id;
 16 import javax.persistence.Lob;
 17 import javax.persistence.Table;
 18 import javax.persistence.Temporal;
 19 import javax.persistence.TemporalType;
 20 import javax.persistence.Transient;
 21 import javax.persistence.Version;
 22 
 23 
 24 /**
 25  * @author Luxh
 26  */
 27 
 28 @Entity//          
 29 @Table(name="t_employee")//    
 30 public class Employee implements Serializable {
 31 
 32     private static final long serialVersionUID = -6143714081018642099L;
 33     
 34     @Id
 35     @GeneratedValue(strategy=GenerationType.AUTO)
 36     //@GeneratedValue(strategy=GenerationType.IDENTITY)
 37     //@GeneratedValue(strategy=GenerationType.SEQUENCE)
 38     //@GeneratedValue(strategy=GenerationType.TABLE)
 39     private Long id;
 40     
 41     @Column(name="name",length=100)//
 42     private String name;
 43     
 44     @Temporal(TemporalType.DATE)//        
 45     private Date createTime;
 46     
 47     @Version//   
 48     @Column(name="optlock")
 49     private Timestamp version;
 50     
 51     @Transient//             
 52     private String temp;
 53     
 54     @Enumerated(EnumType.STRING)//    
 55     @Column(name="gender",length=6,nullable=false)
 56     private Gender gender = Gender.MALE;//    MALE
 57     
 58     @Lob//   
 59     private String instruction;
 60     
 61     @Lob//     
 62     @Basic(fetch=FetchType.LAZY)//
 63     private Byte[] files;
 64     
 65 
 66     public Gender getGender() {
 67         return gender;
 68     }
 69 
 70     public void setGender(Gender gender) {
 71         this.gender = gender;
 72     }
 73 
 74     public String getInstruction() {
 75         return instruction;
 76     }
 77 
 78     public void setInstruction(String instruction) {
 79         this.instruction = instruction;
 80     }
 81 
 82     public Byte[] getFiles() {
 83         return files;
 84     }
 85 
 86     public void setFiles(Byte[] files) {
 87         this.files = files;
 88     }
 89 
 90     public Long getId() {
 91         return id;
 92     }
 93 
 94     public void setId(Long id) {
 95         this.id = id;
 96     }
 97 
 98     public String getName() {
 99         return name;
100     }
101 
102     public void setName(String name) {
103         this.name = name;
104     }
105 
106     public Date getCreateTime() {
107         return createTime;
108     }
109 
110     public void setCreateTime(Date createTime) {
111         this.createTime = createTime;
112     }
113 
114     public Timestamp getVersion() {
115         return version;
116     }
117 
118     public void setVersion(Timestamp version) {
119         this.version = version;
120     }
121 
122     public String getTemp() {
123         return temp;
124     }
125 
126     public void setTemp(String temp) {
127         this.temp = temp;
128     }
129 
130 }

 
列挙Gender:
  
1 /**
2  *   
3  * @author Luxh
4  */
5 public enum Gender {
6     MALE,FEMALE
7 }