2012-01-29 2 views
1

Player와 Hero 클래스간에 1 : n 관계를 모델링하고 싶습니다. 명확하게 말하자면, 한 영웅이 한명의 플레이어에만 속해있는 동안 플레이어는 여러 영웅을 가져야합니다.JoinTable을 사용한 OneToMany 매핑이 데이터베이스에 나타나지 않습니다.

내 플레이어 클래스 (게터, 세터와 관련이없는 속성을 제거) 관련 발췌은 다음과 같습니다

@Entity 
@SequenceGenerator(name = "player_id", initialValue = 1, allocationSize = 1) 
@Table(name = "players") 
public class Player { 
    @OneToMany(cascade = CascadeType.ALL) 
    @JoinTable(name = "players_heroes", 
       joinColumns = { @JoinColumn(name = "player_id") }, 
       inverseJoinColumns = { @JoinColumn(name = "hero_id") }) 
    private Set<Hero> mHeroes; 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "player_id", nullable = false) 
    private Long mId; 
} 

영웅 클래스는 매우 비슷 현재로도 소유 플레이어를 검색 할 가능성이 부족하다 기본 assocation 아직 작동하지 않습니다

@Entity 
@SequenceGenerator(name = "hero_id", initialValue = 1, allocationSize = 1) 
@Table(name = "heros") 
public class Hero { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "hero_id", nullable = false) 
    private Long mId; 
} 

내가 현재 hibernate.hbm2ddl.auto = create 무엇 그것은 나를 제공하는 다음과 같은 출력을 사용하여 데이터베이스 스키마를 생성하고 :

,
Hibernate: create table heros (hero_id int8 not null, [...] primary key (hero_id)) 
Hibernate: create table players (player_id int8 not null, [...], primary key (player_id)) 

동료가 분명히 누락되었습니다. (아무도 내가 잘못하고있는 것을 볼 수 있습니까?

+1

다른 것을 위해 조인 테이블이 필요합니까? 조인 테이블은 일반적으로 다 대다 (many to many) 연관에 사용됩니다. – Gary

+0

효율적인 방법으로 플레이어에 속한 모든 영웅을 열거해야합니다. 여하튼 나는 조인 칼럼 대신 조인 테이블을 사용하는 것이 더 빠르다고 생각했지만, 지금 막 인식 한 것처럼 잘못되었습니다. 감사! –

답변

0

좋아, 내가 준 스 니펫에는 보이지 않는 바보 같은 실수가있다.

+0

다른 독자에게 도움이되는 내용이 없으므로 질문을 닫는 것을 고려해야합니다. – Ziul

관련 문제