在EasyDBO中使用Java註解配置映射的原理及使用

來源:互聯網
上載者:User
 

  我們知道,在EasyDBO最後一個測試版本中,增加了使用註解來設定物件及關係表映射的功能。前段時間看到有人在問註解中怎麼配置主鍵屬性及主鍵產生器,由於在開發文檔中使用的是預設配置,所以文檔中使用了下面的例子: import java.io.Serializable;
import java.util.Date; import com.easyjf.dbo.annotation.*;
@Table(tableName="message")
public class Message implements Serializable{
  @TableField(name="cid")
  private String cid;
  @TableField(name="title")
  private String title1;
  @TableField(name="content")
  private String content1;
  @TableField(name="inputUser")
  private String inputUser;
  @TableField(name="inputTime")
  private Date inputTime;
  @TableField(name="publish")
  private Boolean publish1;
  @TableField(name="status")
  private Integer status1;
  public String getCid() {
    return cid;
  }
  public void setCid(String cid) {
    this.cid = cid;
  }
  //...
  //其它的getter及setter方法
}  這裡面沒有示範怎麼配置主鍵屬性及產生器,我們分別來看看@Table及@TabelField兩個標籤的原始碼: package com.easyjf.dbo.annotation;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
 * 用於定義表結構的標籤
 * @author 大峽
 *
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface Table {
 /**
  * 表名
  * @return
  */
 String tableName();
 /**
  * 表主鍵
  * @return
  */
 String keyField() default "cid";
 /**
  * 主索引值產生器
  * @return
  */
 String keyGenerator() default "com.easyjf.dbo.RandomIdGenerator"; 
 
}   由源碼可以看到,@Table有三個屬性,tableName用來定義表名,keyField用來定義主鍵屬性,keyGenerator用來定義主鍵產生器。而keyField與keyGenerator有一個預設值,前面的Message類定義由於使用了預設值,因此沒有使用keyField及keyGenerator。若要自訂自己的預設值,可以寫成如下形勢:@Table(tableName="message",keyField="id",keyGenerator="com.easyjf.dbo.NullIdGenerator")
public class Message implements Serializable{   ...}    再來看看@TableField的源檔案:package com.easyjf.dbo.annotation;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
 * 用於定義表欄位的標籤
 * @author 大峽
 *
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface TableField
{
 public String name() ;  
 boolean lazy() default false;
 boolean unique() default false;
}   由於已經把lazy及unique給了預設值,所以我們看到樣本中只定義了屬性對應的例即可。   @TableField只定義了普通的屬性,另外還有OneToOne、ManyToOne、ManyToMany等屬性,詳細請參考EasyDBO開發文檔。      http://www.easyjf.com/easydbo/devguide.htm   另外,關於註解配置應該還會在正式版本中加入一些比較適用的內容,EasyDBO也還會作一些調整,請關注!
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.