2016-12-02 5 views
0

表...1対多マッピングの注釈付き列は、表に作成されません。なぜですか? HotelUserの

@Entity 
public class HotelUser { 

@Id 
@Column 
@GeneratedValue 
private int hotelUserId; 

@Column 
private String hotelUserame; 

@Column(name="Role") 
@OneToMany(cascade=javax.persistence.CascadeType.ALL,fetch=FetchType.EAGER) 
private Set<UserRole> userRole=new HashSet<UserRole>(); 
. 
. 

IきたのUserRoleテーブル怒鳴る...

@Entity 
public class UserRole { 

@Id 
@Column 
@GeneratedValue 
private int userRoleId; 

@Column 
private String userRoleName; 

//constructor and geter-setter method... 
} 

私はHotelUser内のすべての列が作成されますが、のUserRoleの列が作成されていないプロジェクトを実行し、 @OneToMneの関係を@OneToManyに与えたら、それは列を作成して、なぜ@OneToManyマッピングを作成しないのですか?

答えて

0

OneToManyアノテーションは、userRoleHotelUserテーブルに作成された場合、1人のユーザーが多くのユーザーロールを持つことを意味します。これは1対1のマッピングになります。

多くのユーザーが1つの役割を持つことができるManyToOneに注釈を付けると、DB内でHotelUserテーブルに列があることが正当化されます。

どちらの場合でも、これは達成したいとは思えません。あなたの問題に対する解決策はManyToManyのrealtionに行くと思います。

関連する問題