2011-11-09 1 views
3

나는 주로 Map<String,String>에 의해 뒷받침되는 상대적으로 간단한 클래스를 가졌다. 이 클래스를 유지하고지도 내의 키 내에서 검색 할 수 있기를 바랍니다. 이 Stack Overflow question을 기반으로 Map은 일련 화 된 BLOB로만 유지 될 수 있다고 생각합니다.DataType.SERIALIZABLE에 의지하지 않고 ORMLite의 <String, String> 맵을 유지 하시겠습니까?

나는 또한 다음 ORMLite website에 참조 :

public class Account { 
    … 
    @ForeignCollectionField(eager = false) 
    ForeignCollection<Order> orders; 
    … 
} 

을 위의 예에서 @ForeignCollectionField 주석 마크 주문 필드는 계정과 일치하는 주문의 모음입니다. 필드 유형의 주문은 ForeignCollection 또는 Collection<T>이어야하며 다른 콜렉션은 지원되지 않습니다. 나는 내가 원하는 인상을 얻을 상기 내용을 토대로

할 수없는,하지만 난 반드시 여기를 확인 거라고 생각하십시오 @ForeignCollectionField 주석은 다음 필드를 지원합니다. 나는 그것을 Hibernate에서 지속 시켰지만 오히려 ORMLite와 같은 더 가벼운 것을 사용할 것입니다!

답변

3

그래, ORMLite에있는 Map을 유지할 방법이 없습니다. KISS 원칙에 따라 간단한 Collection 클래스 만 지원됩니다. SetMap은 인터페이스가 훨씬 더 많으므로 지원되지 않을 것입니다.

나는 당신에게 훌륭한 멋진 일이 없습니다. 당신은 분명히 ForeignCollection을 사용하고 그런 식으로 컬렉션에 액세스해야 할 때 로컬 Map 필드를 만들 수 있습니다. 어쩌면 addOrder() 메서드를 ForeignCollectionMap에 추가하는 방법 일 수 있습니다.

+0

회색, 조언 주셔서 감사 드리며 ORMLite에 대한 훌륭한 작업에 감사드립니다. –

+0

감사합니다. @ 제이슨. 미안해서 더 도움이되지 못했습니다. – Gray

4

getter와 setter가 백그라운드에서 JSONObject로 작업하고 해당 객체를 데이터베이스에 String으로 저장하는 것이 쉬운 솔루션 중 하나입니다.

하지만 JSON은 Java Out-of-the-Box의 일부가 아니므로 어쨌든 사용하지 않으면 불필요하다고 느낄 수 있습니다.