0
내 비즈니스 객체 중 하나에 열거 형 CommunicationMedium 유형의 멤버가 있습니다.안드로이드의 ORMLite는 열거 형 및 기본값 인 열이있는 테이블을 만들 때 예외를 throw합니다.
public enum CommunicationMedium {
EMAIL,
PHONE,
MOBILE,
FACSIMILE,
HOMEPAGE
}
CommunicationData라는 비즈니스 객체에는 다음과 같은 주석이 붙습니다. CommunicationData
클래스의 테이블이 생성받을시기를
@DatabaseTable(tableName="store_communication_data")
public class CommunicationData{
public static final String STORE_ID ="store_id";
public static final String TABLE_NAME = "store_communication_data";
public static final String MEDIUM_COLUMN_NAME = "medium";
public static final String VALUE_COLUMN_NAME = "value";
@DatabaseFieldSimple(canBeNull=false, columnName=STORE_ID)
@DatabaseFieldForeign(foreign=true)
private Store store;
@DatabaseFieldSimple(canBeNull=false, columnName=MEDIUM_COLUMN_NAME, defaultValue="CommunicationMedium.EMAIL")
@DatabaseFieldOther(dataType=DataType.ENUM_STRING)
private CommunicationMedium communicationMedium;
@DatabaseFieldSimple(canBeNull=false, columnName=VALUE_COLUMN_NAME)
private String value;
...
}
데이터베이스 도우미에게 예외 다음 처음으로 접근
가 발생합니다.medium
열의 기본값에 문제가있는 것 같습니다.
java.sql.SQLException: SQL statement failed: CREATE TABLE `store_communication_data` (`medium` __ormlite__ no default value string was specified , `store_id` INTEGER NOT NULL , `value` VARCHAR NOT NULL)
at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
at com.j256.ormlite.table.TableUtils.doStatements(TableUtils.java:458)
at com.j256.ormlite.table.TableUtils.doCreateTable(TableUtils.java:436)
at com.j256.ormlite.table.TableUtils.createTable(TableUtils.java:223)
at com.j256.ormlite.table.TableUtils.createTable(TableUtils.java:53)
...
Caused by: java.sql.SQLException: Problems executing Android statement: CREATE TABLE `store_communication_data` (`medium` __ormlite__ no default value string was specified , `store_id` INTEGER NOT NULL , `value` VARCHAR NOT NULL)
at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
at com.j256.ormlite.android.AndroidCompiledStatement.runUpdate(AndroidCompiledStatement.java:71)
at com.j256.ormlite.table.TableUtils.doStatements(TableUtils.java:452)
...
Caused by: android.database.sqlite.SQLiteException: near "string": syntax error: , while compiling: CREATE TABLE `store_communication_data` (`medium` __ormlite__ no default value string was specified , `store_id` INTEGER NOT NULL , `value` VARCHAR NOT NULL)
at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1026)
...
빠른 답변 감사드립니다. 나는 주변에서 일하는 것이 지금 나에게 좋다고 생각한다. – Flo