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

EJB 3.0 實體 Bean 多表映射實作:@SecondaryTable 註解完整指南

     編輯:Java 相關知識

場景動機

單一實體對應多張資料表,常見於字典表、擴充欄位、歷史資料分離等情境。EJB 3.0 提供 @SecondaryTable 與 @SecondaryTables 註解支援。

註解定義

@SecondaryTable(
    name = "GENDER",
    catalog = "",
    schema = "",
    join = @JoinColumn(name = "GENDER_ID"),
    uniqueConstraints = {}
)

實體 Bean 範例


@Entity
@Table(name = "STUDENT")
@SecondaryTables({
    @SecondaryTable(name = "GENDER", join = @JoinColumn(name = "GENDER_ID"))
})
public class Student implements Serializable {
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    private Name name;  // 依賴值物件

    @Column(name = "gender", secondaryTable = "GENDER")
    public String getGender() { return gender; }
    // ... 其他屬性
}

關鍵細節

  • join 屬性指定主表與副表的關聯欄位(外鍵)。
  • 屬性標註 secondaryTable 明確宣告該欄位對應副表。
  • 支援多個 @SecondaryTable 組合映射。

測試客戶端


StudentDAO dao = (StudentDAO) ctx.lookup(StudentDAO.class.getName());
dao.create("晁", "岳攀", "8", "smallnest@kuaff.com", "男");
// 查詢時自動 JOIN 兩張表

部署驗證

  1. 啟動 JBoss 並開啟 HSQL 管理工具檢查表結構
  2. 執行 Ant 部署與測試
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved