让BeanKeeper支持Enum
Beankeeper (http://netmind.hu/persistence/index.php)是一个非常方便的易用的java ORM项目.
如何使用请看这里.
但是现在不支持java5中的Enum类型.Opensource就是好,有不满足的地方只需要自己修改就可以了.这里简单记录一下如何修改.
1.ClassTracker.java,找到方法
public static boolean isPrimitive(Class clazz){
//大约在109行,添加,这里就是多一个判断,是否是Enmu类型
|| clazz.isEnum()
}
2.GenericDatabase.java,找到方法,
protected int getSQLType(Class type){
//大约在1362行,添加enum类型的数据库存储格式,注意,这个类可能会对不同的数据库上有不同的实现.
if ( type.isEnum() )
return Types.CHAR;
}
3.ObjectTracker.java,找到方法
public static Object getTypeValue(Object value, Class attrClass) {
//大约在468行,这里是在查询时候用到,由数据库的String类型转成Enum类型.
if(attrClass.isEnum() && valueClass.equals(String.class)){
return Enum.valueOf(attrClass, (String) value);
}
}
Posted at 10:40下午 七月 12, 2008 by nile black in General | Comments[0]