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))
동료가 분명히 누락되었습니다. (아무도 내가 잘못하고있는 것을 볼 수 있습니까?
다른 것을 위해 조인 테이블이 필요합니까? 조인 테이블은 일반적으로 다 대다 (many to many) 연관에 사용됩니다. – Gary
효율적인 방법으로 플레이어에 속한 모든 영웅을 열거해야합니다. 여하튼 나는 조인 칼럼 대신 조인 테이블을 사용하는 것이 더 빠르다고 생각했지만, 지금 막 인식 한 것처럼 잘못되었습니다. 감사! –