2012-01-04 2 views
1

데이터 구조와 같은 트리가있는 엔티티를 작성하고 있습니다. 나는 embeddable 객체를 노드로 사용하고 있습니다. 이러한 임베드 가능한 노드는 2D 부울 배열을 가져야합니다. JPA에서 영구 2D 부울 배열 (openJPA)

난 그냥 같은 것을 수행 할 수 있습니다

@Embeddable 
public class AwesomeNode implements Serializable{ 

    private boolean[][] matrix; 

    // getters, setters and other stuff 

} 

내가 설명서를 읽고있다, 그리고 모든 기본 형식이 지원되지만, 부울 배열이 아닌 것 같다.

이것이 사실이라면, 바이트 [너비 * 높이] (명시 적으로 지원됨)를 사용하고 사용자 측에서 필요한 로직을 수행 할 계획이었습니다. 이것은 좋은 생각입니까? 그것을하는 더 좋은 방법?

누구든지 지침을 제공 할 수 있습니까?

답변

1

JPA는 필드 값을 관계형 데이터베이스에 쉽게 저장할 수있는 방식으로 작성됩니다. 테이블에 2D 배열을 저장하는 것이 어떻습니까? 이 질문에 답해 주시면 바로 매핑하는 방법을 즉시 알 수 있습니다.

예 : 당신은 BLOB 매핑

가야 또는 당신이 당신의 매트릭스에 얼마나 많은 열을 알고 있다면, 당신은 아마 각 행에 대해 테이블을 바칠 수있는 것보다이 이진 표현 될 것입니다 말한다면 테이블에서 행 2D 배열됩니다. 선택은 당신 것이지만 그렇습니다. 2D 배열을 가져 와서 저장할 수는 없으며, 관계형 DB에 저장하기 위해 상자에 저장하지 않아도됩니다.

희망이

+0

http://www.objectdb.com/java/jpa/entity/types#Multi_Value_Types_ 당신이 확신하는 데 도움이? 이 사실은 2D 배열이 실제로 지속될 수 있다고 생각하게합니다. – b3bop

+0

물론 Mark Bramnik이 BLOB (@Blob 사용)라고 말한 것처럼 계속 유지 될 수 있습니다. – DataNucleus

+0

그래서 @Lob에 주석을 달아 주어야합니까? 아니면 실제로 직접 serialize해야합니다. 직렬화 가능 클래스에서 2 차원 배열을 래핑하면 어떻게 될까요? – b3bop