Java Me Games


« [答傻姑]如何在运行时添加spring的... | Main | [答傻姑]如何解决tapestry5中的... »
星期六 七月 12, 2008

让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);
     }
}

Comments:

Post a Comment:
Comments are closed for this entry.