Eva
Java粉絲募集中
  • 簡介
  • 我們的優勢
  • 最新消息
  • 下載與使用
  • 範例與說明
    • Eva Objects >
      • Bean類別定義
      • Entity型別定義
      • Struct型別定義
      • 建立Entity空白物件
      • 建立Entity修改物件
      • 建立Entity條件物件
      • 建立Struct值物件
    • Eva_ORM >
      • ORM程式主體
      • 使用條件物件執行操作
      • 執行更複雜條件的操作.
      • 分頁取回資料
      • 操作JDBC的參數
      • Array Property的操作
      • Collection Property的操作
      • 更複雜的Collection Property
      • 指定表格名稱
      • 新增資料庫Dialect
    • Eva_IOC >
      • IOC程式主體
      • AOP應用
    • Eva_Struct >
      • Struct範例
      • Bit Strcut範例
      • 指標範例
      • 於Eva_ORM中使用
    • Eva_Sort >
      • 依指定Properties排序
      • 部份排序
      • 優先排序部份
    • Eva_Cache >
      • hashing-based cache
      • 非hashing-based cache
  • API列表
  • 技術支援
    • 協助開發
  • 相關書籍

Entity型別的定義.

下列三個類別別 A, B, C 都是合格的 Entity 定義 : 其中 B 是傳統的 Bean 類別另上 @Entity 的標記; 而 A 是 Bean 介面加上 @Entity 的標記; 而 C 是一個抽像的類別, 擁有 Bean Properties 的定義, 但其中的方法 doSomething 不符合 Property 的命名規則的, 所以 doSomething 不屬於任一個 Property, 而 Eva 也不會使用它去對映表格欄位. 但 C 仍然是一個合格的 Entity 定義.

在 A, B, C 三個類別中都有 Property 被 @Id 標記, 它們代表該類別的 Primary Key, 也為該類別中 hashCode, equals, compareTo 等方法執行的依據. 在 Eva 中提供有許多不同意義的標記可供使用, 請注意他們都需標記在 Property 的方法上. 一個 Property 可能會有取值與設值兩種方法, 欲進行標記時, 於其中任選一個即可, 但也可兩個方法都標記, 但若兩個方法上的標記設定有所矛盾時, Eva 將會在發現矛盾的時侯丟出例外.
package entities;

import java.util.List;
import java.util.SortedMap;

import com.logntw.eva.anno.orm.Entity;
import com.logntw.eva.anno.orm.Id;

@Entity
public interface A
{
  // if having a collection, it must have a primary key !
  @Id
  int getId1();
  void setId1(int id1);
          
  B getData1();
  void setData1(B data1);
  
  List> getData2();
  void setData2(List> data2);

  SortedMap> getData3();
  void setData3(SortedMap> data3);
}
package entities;

import com.logntw.eva.anno.orm.Entity;
import com.logntw.eva.anno.orm.Id;

@Entity
public class B
{
  // if being referenced, it must have a primary key !
  private int id1;
  @Id
  public int getId1()
  {
    return id1;
  }
  public void setId1(int id1)
  {
    this.id1 = id1;
  }
      
  private int data1;
  public int getData1()
  {
    return data1;
  }
  public void setData1(int data1)
  {
    this.data1 = data1;
  }
}
package entities;

import com.logntw.eva.anno.orm.Entity;
import com.logntw.eva.anno.orm.Id;

@Entity
public abstract class C implements Comparable<C>
{
  // if being referenced, it must have a primary key !
  private int id1;
  @Id
  public int getId1()
  {
    return id1;
  }
  
  public void setId1(int id1)
  {
    this.id1 = id1;
  }
            
  public abstract int getData1();
  public abstract void setData1(int data1);
  
  public String doSomething()
  {
    return "doSomething";
  }
}
Powered by Create your own unique website with customizable templates.