Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ORMLite在数据库中存储枚举集合_Java_Database_Enums_Ormlite - Fatal编程技术网

Java 使用ORMLite在数据库中存储枚举集合

Java 使用ORMLite在数据库中存储枚举集合,java,database,enums,ormlite,Java,Database,Enums,Ormlite,我正在尝试使用ORMLite将枚举集合保存到数据库中。因此,在创建Dao时,我没有得到参数构造函数错误 我尝试过创建默认包构造函数,但没有帮助——我认为ORMLite需要公共构造函数,但Enum不能 我的枚举如下所示(分离的.java文件) enum RankPermission{ @DatabaseField(数据类型=数据类型。枚举到字符串) 全部的 //... ; RankPermission(){} } 另一个类中的集合是 @DatabaseTable 阶级等级{ @国外收藏场 收集权

我正在尝试使用ORMLite将枚举集合保存到数据库中。因此,在创建Dao时,我没有得到参数构造函数错误

我尝试过创建默认包构造函数,但没有帮助——我认为ORMLite需要公共构造函数,但Enum不能

我的枚举如下所示(分离的.java文件)

enum RankPermission{
@DatabaseField(数据类型=数据类型。枚举到字符串)
全部的
//...
;
RankPermission(){}
}
另一个类中的集合是

@DatabaseTable
阶级等级{
@国外收藏场
收集权限;
公共等级(){}
}
我得到的道的创造和错误

DaoManager.createDao(conn,Rank.class);

[23:31:12错误]:找不到类package.core.rank.RankPermission的无参数构造函数
java.lang.IllegalArgumentException:找不到类package.core.rank.RankPermission的无参数构造函数
在com.j256.ormlite.table.DatabaseTableConfig.findNoArgConstructor(DatabaseTableConfig.java:229)~[?:?]
在com.j256.ormlite.table.DatabaseTableConfig.getConstructor(DatabaseTableConfig.java:154)~[?:?]
在com.j256.ormlite.table.TableInfo.(TableInfo.java:96)~[?:?]
在com.j256.ormlite.table.TableInfo.(TableInfo.java:54)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl.initialize(BaseDaoImpl.java:156)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl.(BaseDaoImpl.java:133)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl.(BaseDaoImpl.java:112)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl$5(BaseDaoImpl.java:1044)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl.createDao(BaseDaoImpl.java:1044)~[?:?]
在com.j256.ormlite.dao.DaoManager.createDao(DaoManager.java:70)~[?:?]
在com.j256.ormlite.field.FieldType.configDaoInformation(FieldType.java:392)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl.initialize(BaseDaoImpl.java:206)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl.(BaseDaoImpl.java:133)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl.(BaseDaoImpl.java:112)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl$5(BaseDaoImpl.java:1044)~[?:?]
在com.j256.ormlite.dao.BaseDaoImpl.createDao(BaseDaoImpl.java:1044)~[?:?]
在com.j256.ormlite.dao.DaoManager.createDao(DaoManager.java:70)~[?:?]
在package.storage.yaml.db.DatabaseConnector.initDaos(DatabaseConnector.java:152)~[?:?]

我想以枚举形式保存此集合,因为解决此问题更方便,我只使用了
java.util
包中的任何集合,并设置
@DatabaseField(dataType=dataType.SERIALIZABLE)
注释而不是
@ForeignCollectionField
来保存序列化数据,所以现在代码是

等级{
@DatabaseField(dataType=dataType.SERIALIZABLE)
私有HashSet权限=新HashSet();
}
HashSet
type设置为field很重要,因为ORMLite不会在
set
上检测可序列化接口