2017-11-10 18 views
1

나는 내 조회 테이블을 "생성"해야 할 작업을 최소화하려고합니다. 그들은 모두 int id을 기본 키로 사용할 것입니다. 그러나 Enum 값이 무엇이든 관계없이 "유형"으로 검색 할 수있는 기능을 갖고 싶습니다.일반 열거 형을 OrmLite 열로 만드는 방법

java.sql.SQLException: Field FieldType:name=type,class=LookupRecord improperly configured as type [email protected]

답변

0

They are all going to have int id as primary key but I'd also like them to have the ability to be searched by their "type" (whatever the Enum value is).

@DatabaseField(unique = true, columnName = TYPE_FIELD_NAME) 
private T type; 

그래이 진행되지 않은 : 여기

public abstract class LookupRecord<T extends Enum<T>> extends DatabaseRecord { 
    public static final String TYPE_FIELD_NAME = "type"; 

    @DatabaseField(unique = true, columnName = TYPE_FIELD_NAME) 
    private T type; 

    public LookupRecord(T type) { 
     this.type = type; 
    } 

    public T getType() { 
     return type; 
    } 
} 

그래서 나는 다음과 같은 오류가 룩업 테이블의에 대한 다오을 초기화하려고 할 때마다 추상 LookupRecord 클래스입니다 type erasure 때문에 일할 수 있습니다. ORMLite이 리플렉션을 사용하여 해당 클래스를 조사하려고하면이 필드에 대한 열거 형 상수를 조회하려고 시도합니다. 그것이 얻는 것은 유형 Enum이고 하위 클래스의 구체적인 구체적인 Enum 클래스는 아닙니다. 불행히도 그 오류 메시지는 도움이되는 것보다 적습니다.

클래스가 구성 될 때 그것이 열거 형이라는 것을 알고있는 것이 전부입니다. 열거 형이므로 열거 형 필드를 올바르게 구성하거나 적절한 열거 형 필드가있는 인스턴스를 만들 수 없습니다.

+0

응답 해 주셔서 감사합니다. 나는 불가능을 향해 총을 쏜 느낌이 들었고 접근 방식이 바뀌었다. – SirBeastalot