首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

EJB 3.0 實體 Bean 進階映射:@Column 細節與 EntityManager 完整操作指南

     編輯:Java 相關知識

@Column 註解完整屬性表

屬性預設值說明
name屬性名資料庫欄位名稱
nullabletrue是否允許 NULL
uniquefalse是否唯一約束
length255字串欄位長度
precision/scale0數值精度/小數位
columnDefinition""原生 DDL 片段(如 "TEXT NOT NULL")
secondaryTable""指定副表名稱
insertable/updatabletrue是否參與 INSERT/UPDATE

EntityManager 介面完整定義


public interface EntityManager {
    void persist(Object entity);
     T merge(T entity);
    void remove(Object entity);
     T find(Class cls, Object pk);
    void flush();
    Query createQuery(String ejbql);
    Query createNamedQuery(String name);
    Query createNativeQuery(String sql);
    void refresh(Object entity);
    void evict(Object entity);      // 從持久化上下文移除
    boolean contains(Object entity);
}

實戰範例:學生成績管理(同 131813 結構)

  • Student @OneToMany(cascade=ALL, fetch=EAGER) Score
  • TeacherBean @Stateful 封裝建立邏輯,@Remove 方法觸發 persist
  • Client 透過 JNDI 查找 Teacher 介面操作

最佳實踐提醒

  • 明確指定 @Column(name="...") 避免命名風格不一致導致 Schema 不符。
  • 大欄位(LOB)設定 @Lob + @Column(columnDefinition="BLOB")。
  • 唯一業務鍵加 @Column(unique=true) 配合資料庫約束雙重保障。
  • 唯讀欄位設定 insertable=false, updatable=false。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved