Tôi đang cố gắng để tồn tại các lớp sau đây với OrmLite:Có thể có một trường enum trong một lớp tồn tại với OrmLite không?
public class Field {
@DatabaseField(id = true)
public String name;
@DatabaseField(canBeNull = false)
public FieldType type;
...
}
Các FieldType
là một public enum
. Trường, tương ứng với type
là chuỗi trong SQLite (không hỗ trợ enums). Khi tôi cố gắng sử dụng nó, tôi nhận được ngoại lệ sau đây:
INFO [main] (SingleConnectionDataSource.java:244) - Established shared JDBC Connection: [email protected]
Exception in thread "main" org.springframework.beans.factory.BeanInitializationException: Initialization of DAO failed; nested exception is java.lang.IllegalArgumentException: Unknown field class class enums.FieldType for field FieldType:name=type,class=class orm.Field
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:51)
at orm.FieldDAO.getInstance(FieldDAO.java:17)
at orm.Field.fromString(Field.java:23)
at orm.Field.main(Field.java:38)
Caused by: java.lang.IllegalArgumentException: Unknown field class class enums.FieldType for field FieldType:name=type,class=class orm.Field
at com.j256.ormlite.field.FieldType.<init>(FieldType.java:54)
at com.j256.ormlite.field.FieldType.createFieldType(FieldType.java:381)
at com.j256.ormlite.table.DatabaseTableConfig.fromClass(DatabaseTableConfig.java:82)
at com.j256.ormlite.dao.BaseJdbcDao.initDao(BaseJdbcDao.java:116)
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:48)
... 3 more
Vậy làm thế nào để tôi nói với OrmLite, các giá trị ở bên Java là từ một enum
?
Cảm ơn, bạn đang làm rất tốt, bạn có nghĩ sẽ tốt hơn khi liên hệ với bạn qua biểu mẫu hoặc trang web này không? Tôi đoán sau này có thể tiết kiệm thời gian của bạn khi mọi người google cho những gì họ muốn đầu tiên – htf
Tại sao nó được khuyến khích sử dụng ENUM_INTEGER? Chắc chắn, tên của mục nhập enum ít có khả năng thay đổi hơn so với thứ tự hoặc số lượng mục nhập. – pablisco
Nó không được khuyến cáo. Bạn đã đọc câu trả lời @pablisco chưa? – Gray