>  Q&A  >  본문

Hibernate가 가변 개수의 매개변수를 사용하여 엔터티 클래스를 처리하는 방법

객체에 여러 개의 매개변수가 있다고 가정하고, 매개변수의 이름과 개수가 불확실합니다. 이 경우 Hibernate가 작동하기에 더 적합하도록 데이터 테이블을 어떻게 설계해야 하는지 알고 싶습니다. 해결 전(마스터의 불평을 듣고 싶습니다):
총 두 개의 테이블이 사용됩니다. 하나는 탭 테이블이고 다른 하나는 탭메타 테이블이며, 탭메타 테이블의 tid는 탭의 ID를 참조하여 외래 키(사실 데이터베이스에 이 관계를 만들고 싶지 않고 프로그램에서 외래 키를 만들고 싶거나 DAO 레이어가 이러한 관계를 구현하고 싶습니다).

해당 엔터티 클래스를 만듭니다( InteliJ IDEA의 리버스 엔지니어링을 사용하여 테이블을 통해 직접 생성됨):
으아악

생성 시 매개변수:


그러나 이는 두 개의 엔터티 클래스를 생성합니다. 하나는 TabEntity이고 다른 하나는 강박 장애는 원래 불만을 표현합니다. 이제 두 개체 간의 일대다 관계. 이제 이러한 불확실한 매개변수를 저장하기 위해 TabEntity에서 (Hash)Map 유형의 변수 메타를 준비하여 엔터티 클래스가 하나만 있도록 할 수 있는지 묻고 싶습니다. 이 경우 데이터를 데이터베이스에 어떻게 다시 저장해야 합니까?
이런 방식으로 생성된 엔터티 클래스의 변수 매개변수 중 하나에 액세스하려면 다음이 필요합니다.
TabDao.getEntity(...) .getTabmetasById().get('somekey').getMetaValue()
, 하지만 이 두 테이블의 데이터가 하나의 엔터티의 데이터로 이해된다면 다음과 같아야 합니다. 구현: TabDao.getEntity(...).getTabmetasById().get('somekey').getMetaValue()
来实现,但是如果把这两个表的数据理解成一个实体的数据的话就应该这么实现:
TabDao.getEntity(...).getMeta('somekey')TabDao .getEntity(...).getMeta('somekey')
마스터님이 이와 관련해 제안하실 사항이 있는지 모르겠습니다....
마스터님과 IDEA의 관계에 대해서도 묻고 싶습니다. 생성된 대화 상자의 각 매개변수가 영향을 미치나요?

정말 혼란스럽습니다. 신들이 저에게 깨달음을 주실 수 있기를 바랍니다!

我想大声告诉你我想大声告诉你2683일 전532

모든 응답(1)나는 대답할 것이다

  • 滿天的星座

    滿天的星座2017-05-17 10:08:59

    질문하고 대답하는 시간....
    위에 언급한 방법을 구현하고 LazyLoad도 구현하려는 경우 IDEA의 자동 생성은 기본적으로 쓸모가 없습니다.... 생성된 함수에는 If가 아닌 생성이 포함되지 않습니다. 개체 간의 관계를 설정해야 하는 경우 매핑 파일을 직접 변경할 수만 있습니다. 먼저 탭 테이블의 엔터티 클래스를 생성한 다음 탭의 엔터티 클래스에 맵 유형 개체를 추가합니다(특정 매핑에 대해서는 다른 페이지 참조). 유형). 테이블의 필드 데이터 유형), 해당 getter 및 seter 함수를 생성합니다.
    그런 다음 맵 파일이 있습니다.

    으아악

    회신하다
    0
  • 취소회신하다