表中没有创建一对多映射的带注释列。为什么?

时间:2016-12-02 06:21:47

标签: hibernate

酒店用户表...

@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>();
.
.

我的UserRole表格如下......

@Entity
public class UserRole {

@Id
@Column
@GeneratedValue
private int userRoleId;

@Column
private String userRoleName;

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

当我运行项目时,会创建HotelUser中的所有列,但是UserRole的列不会创建,如果您给@OneToMany的@ManyToOne关系,那么它的列创建然后为什么不为@OneToMany映射创建...?

1 个答案:

答案 0 :(得分:0)

OneToMany注释意味着One HotelUser将拥有许多UserRole,如果在userRole表中创建了列HotelUser,则无法进行此操作。它将是一对一的映射。

当你注释ManyToOne时,这意味着许多用户可以在一个角色中证明一个角色是合理的,并且在HotelUser表中有一列。

在任何一种情况下,我认为这不是你想要达到的目标。我认为解决你的问题的方法是实现ManyToMany的实现。