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は大きなテキストとバイナリデータを処理する.
エンティティの例:
列挙Gender:
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 }