2010-08-03 3 views
0

나는 계속 유지하고자하는 클래스가 OrmLite이고, 대부분의 데이터를 HashMap에 저장합니다. 이 필드를 Sqlite의 테이블에 매핑하고, 맵에없는 테이블은 null으로 남겨 둡니다. OrmLite를 사용하여 사용자 지정 구현을 사용하여 일부 레코드를 데이터베이스에 저장하는 메서드를 재정의 할 수 있습니까?OrmLite에서 사용자 정의 SQL을 작성할 수 있습니까?

+0

이 맵은 테이블의 SQL 행 컬렉션입니까? 예를 들어, 맵에 100 가지가 있으면 SQL 테이블에 100 개의 행이 있습니까? – Gray

+0

@ 그레이, 아니. 테이블에'column1','column2','column3'이 있다고 가정하십시오. 'Map 'foo','column3' => 'bar'를 포함합니다. 결과 행은 1 => 널 (NULL), 2 => foo, 3 => 막대가됩니다. 어쨌든, 최대 절전 모드로 전환 했으므로이 질문은 적절하지 않습니다. – Fluffy

+0

나는 OrmLite의 저자이며, 추가해야 할 기능이없는 경우 궁금합니다. 그래서 Map은 하나의 행을 저장합니다. String 키는 열 이름이며 Object 값은 관련 데이터입니까? 그러나 맵 대신 오브젝트를 사용할 수 있습니다. setColumn2 ("foo") 및 setColumn3 ("bar")를 호출하십시오. 그게 더 자바 방식이 아닌가요? – Gray

답변

0

나는 Roddik가 계속 전진했다고 생각하지만, 나는 OrmLite의 저자로서 어쨌든 대답을 게시 할 것이라고 생각했다.

내 일반적인 대답은 맵 대신 열을 저장할 개체를 만드는 것이 좋습니다. SQL은 문자열 열의 행이지만 ORM의 전체적인 점은 문자열 맵 대신 Java에서 개체를 행으로 처리 할 수 ​​있다는 것입니다.

@DatabaseTable 
public void RandomThing { 
    @DatabaseField 
    String column1; 
    @DatabaseField 
    String column2; 
    @DatabaseField 
    String column3; 
    public void RandomThing(String column1, String column2, String column3) { 
     ... 
    } 
} 

는 지금 ORMLite 문자열의지도를 지속 할 수있는 방법이 없다.