不,问题不在数据库的连接中。Hibernate根据ID(属性本身或方法)上的注释位置确定其策略,以检查配置注释。
在您的User类中,您要告诉hibernate在属性级别使用注释。
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="user_id")
private int id;
因此对于hibernate来说,您没有像角色这样的其他属性的映射,因为它不会检查映射的方法,因此您需要做的是从方法中获取注释并将其放入属性中。
@ManyToMany
@JoinTable(name="user_role", joinColumns = @JoinColumn(name="user_id"), inverseJoinColumns = @JoinColumn(name="role_id"))
private Set<Role> roles;
您需要在所有注释中执行此操作。