Java 找不到Hibernate数据库列-在批注中定义
我在hibernate中遇到了一个我无法理解的异常 org.hibernate.AnnotationException:无法在表用户\ u角色上创建唯一键约束(角色、用户名):未找到数据库列“角色”。确保使用正确的列名,这取决于使用的命名策略(它可能与实体中的属性名不同,尤其是对于关系类型) 我已经用注释定义了列“role”的名称,我是否遗漏了什么 谢谢你的帮助Java 找不到Hibernate数据库列-在批注中定义,java,hibernate,Java,Hibernate,我在hibernate中遇到了一个我无法理解的异常 org.hibernate.AnnotationException:无法在表用户\ u角色上创建唯一键约束(角色、用户名):未找到数据库列“角色”。确保使用正确的列名,这取决于使用的命名策略(它可能与实体中的属性名不同,尤其是对于关系类型) 我已经用注释定义了列“role”的名称,我是否遗漏了什么 谢谢你的帮助 ... @Entity @Table(name = "user_roles", uniqueConstraints = @Uni
...
@Entity
@Table(name = "user_roles", uniqueConstraints = @UniqueConstraint(columnNames =
{ "role", "username" }) )
public class UserRole
{
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "user_role_id", unique = true, nullable = false)
private Integer userRoleId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "username", nullable = false)
private User user;
@Column(name = "role", nullable = false, length = 45)
private String role;
...
}
您碰巧使用了什么RDBMS?此设置是否会有所不同?根据您的数据库,可能会保留名称“角色”(例如Postgres)。它可能无法创建表,或者引用不正确。谢谢-我将“角色”更改为“
role
”,它现在可以工作了!我正在使用MySQL5。