JPA學習(1)

一直想學習一門持久化技術,hibernate,ibatis和JPA都是抉擇的目標。

現時要在這裏記要自個兒學習JPA的進程和心得,也找一個地方和大夥兒分享自各兒學習的點滴。



第一選用一個jpa的基準兌現,這邊我們選用apache的open jpa。



第二,開發時,構建一個與數據庫表對應的entity務須遵從的幾個準則:

一.視作在網絡傳送的對象,務必頭裏serializable接口。

二.必須有一個空參結構函數

三.如若對應數據庫的某個屬性的話,則務須定義成private。

四.不能宣言爲final門類。



如若想在entity中不要一個數據庫中的一個字段,那麼我們亟需用@transient標註。如若沒有用任何標註,那麼說明這個entity中的字段對應着的是和在這個entity中同名的數據庫字段。



下邊是引自網友的一段引見:



1. 根本屬性投射
透過 @Basic 可以宣言屬性的存取對策:
@Basic(fetch=FetchType.EAGER) 即刻獲取(默許的存取計策)
@Basic(fetch=FetchType.LAZY) 推延獲取

經過 @Temporal 定義照射到數據庫的時間精密度:
@Temporal(TemporalType=DATE) 日期
@Temporal(TemporalType=TIME) 時間
@Temporal(TemporalType=TIMESTAMP) 兩者兼有

施用 @Lob 投射Blob或Clob部類:依據屬性門類決議
java.sql.CLOB, Character[], char[], String 將投射爲 Clob
java.sql.BLOB, Byte[], byte[], serializable 將照射爲 Blob

標註爲@Lob的屬性,常常和@Basic應用,用於標註大文本等內容的推遲加載。

2. 列屬性照射
應用 @Column 照射到列
@Column(
name="columnName"; // 可選,列名(默許是屬性名)
boolean unique() default false; // 可選,是不是在該列上設立獨一約束(默許 false)
boolean nullable() default true; // 可選,是不是可認爲空
boolean insertable() default true; // 可選,該列是不是作爲生成insert話語中的一列
boolean updatable() default true; // 可選,該列是不是作爲生成update話語中的一列
String columnDefinition() default ""; // 可選,爲這個特定列覆蓋 SQL DDL 片斷(或者以致沒法在不同數據庫間移栽)
String table() default ""; // 可選,定義對應的表,默許爲主表
int length() default 255; // 可選,列長度
int precision() default 零; // 可選,列十進制精密度(decimal precision)
int scale() default 零; // 可選, 列十進制數範疇(decimal scale)


public class Person {
@Column(name = "PERSONNAME", unique = true, nullable = false, updatable = true)
private String name;

@Column(name = "PHOTO", columnDefinition = "BLOB NOT NULL", secondaryTable="PER_PHOTO")
private byte[] picture;
}
本文來源:
我的異常網
Java Exception
Dotnet Exception
Oracle Exception

3076 - j2me在加載圖片時出現IO異常和空指針異常 3077 - 圖片處理報java.lang.OutOfMemoryError異常 3078 - Context struts2_JPA_Demo startup failed due to previous errors 3079 - 爲什麼程序中有退出的代碼java還要拋出異常呢? 3080 - ActionContext.getContext().getSession() 報空異常 3081 - java.io.IOException:Credentials do not exist 3082 - struts2拋自定義異常 3083 - ERROR 1064(42000) 3084 - java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet 3085 - 系統在運行時出現異常怎麼處理
發佈了271 篇原創文章 · 獲贊 2 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章