package jef.database.annotation;
/**
* 对应时间自动自动生成功能 有四种时间自动生成规则
*
*/
public enum DateGenerateType {
/**
* 创建时使用数据库时间戳
*/
created(false, false){
public long generateLong() {
throw new UnsupportedOperationException();
}
},
/**
* 修改时使用数据库时间戳
*/
modified(true, false){
public long generateLong() {
throw new UnsupportedOperationException();
}
},
/**
* 创建时使用Java时间戳
*/
created_sys(false, true){
public long generateLong() {
return System.currentTimeMillis();
}
},
/**
* 修改时使用Java时间戳
*/
modified_sys(true, true) {
public long generateLong() {
return System.currentTimeMillis();
}
},
/**
* 修改使用JavaNano时间戳
*/
modified_nano(true, true){
public long generateLong() {
return System.nanoTime();
}
};
/**
* 是由Java生成时间还是数据库生成时间
*/
public boolean isJavaTime;
/**
* 是否每次修改时都要刷新时间
*/
public boolean isModify;
/**
* 如果是由java生成时间,并且精度为转换为long的毫秒数来管理(因为Oracle和MySQL的时间精度都只到秒)
* 则生成当前时间戳
* @return
*/
public abstract long generateLong();
private DateGenerateType(boolean isModify, boolean isJavaTime) {
this.isModify = isModify;
this.isJavaTime = isJavaTime;
}
}