我們知道,在EasyDBO最后一個測試版本中,增加了使用注解來配置對象及關系表映射的功能。前段時間看到有人在問注解中怎么配置主鍵屬性及主鍵生成器,由于在開發文檔中使用的是默認配置,所以文檔中使用了下面的例子:
import java.io.Serializable;
import java.util.Date;import com.easyjf.dbo.annotation.*;
@Table(tableName="message")
publicclass Message implements Serializable{
@TableField(name="cid")
privateString 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;
}
publicvoid 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")
publicclass 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開發文檔。
?
另外,關于注解配置應該還會在正式版本中加入一些比較適用的內容,EasyDBO也還會作一些調整,請關注!
(本文作者 EasyJF開源 大峽)
posted on 2006-10-26 10:08
簡易java框架 閱讀(1050)
評論(0) 編輯 收藏