package jef.database.ddl; import java.math.BigDecimal; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.Lob; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import jef.database.annotation.EasyEntity; import jef.database.annotation.Indexed; @Table(name = "TABLE_FOR_TEST",indexes={ @Index(columnList="id,name desc",name="IDX_DEFAULT_TEST",unique=true) //单独再定义一个复合索引 },uniqueConstraints={@UniqueConstraint( columnNames={"code","name"})}) @Entity @EasyEntity(checkEnhanced=false) public class TableForTest extends jef.database.DataObject { private static final long serialVersionUID = 1L; @GeneratedValue(strategy=GenerationType.AUTO) @Id @Column(length=20) private int id; @Column(length=64) private String name; @Column(columnDefinition="number(18,8)",name="FLOAT_NUMBER") private BigDecimal floatNumber; /** * 指定列有索引 */ @Indexed @Column(columnDefinition="char",length=4) private String code; /** * 为一个日期列添加@GeneratedValue后,在插入时如果没有指定数据,将使用sysdate填入 */ @GeneratedValue(generator="created") @Column(name="create_time") private Date created; /** * 为一个日期列添加@GeneratedValue后,在插入或者更新时,将使用sysdate填入 */ @GeneratedValue(generator="modified") @Column(name="last_modified") private Date modified; @GeneratedValue(generator="created-sys") @Column(name="create_time_sys") private Date createdSys; @GeneratedValue(generator="modified-sys") @Column(name="last_modified_sys") private Date modifiedSys; public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public Date getCreatedSys() { return createdSys; } public void setCreatedSys(Date createdSys) { this.createdSys = createdSys; } public Date getModifiedSys() { return modifiedSys; } public void setModifiedSys(Date modifiedSys) { this.modifiedSys = modifiedSys; } @Column(name="expire_time") private Date expireTime; private long amount; @Lob private byte[] data; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public Date getModified() { return modified; } public void setModified(Date modified) { this.modified = modified; } public long getAmount() { return amount; } public void setAmount(long amount) { this.amount = amount; } public Date getExpireTime() { return expireTime; } public void setExpireTime(Date expireTime) { this.expireTime = expireTime; } public byte[] getData() { return data; } public void setData(byte[] data) { this.data = data; } public BigDecimal getFloatNumber() { return floatNumber; } public void setFloatNumber(BigDecimal floatNumber) { this.floatNumber = floatNumber; } public enum Field implements jef.database.Field { id, name, code, amount, expireTime, data,created,createdSys,modified,modifiedSys,floatNumber } }