Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到Hibernate数据库列-在批注中定义_Java_Hibernate - Fatal编程技术网

Java 找不到Hibernate数据库列-在批注中定义

Java 找不到Hibernate数据库列-在批注中定义,java,hibernate,Java,Hibernate,我在hibernate中遇到了一个我无法理解的异常 org.hibernate.AnnotationException:无法在表用户\ u角色上创建唯一键约束(角色、用户名):未找到数据库列“角色”。确保使用正确的列名,这取决于使用的命名策略(它可能与实体中的属性名不同,尤其是对于关系类型) 我已经用注释定义了列“role”的名称,我是否遗漏了什么 谢谢你的帮助 ... @Entity @Table(name = "user_roles", uniqueConstraints = @Uni

我在hibernate中遇到了一个我无法理解的异常

org.hibernate.AnnotationException:无法在表用户\ u角色上创建唯一键约束(角色、用户名):未找到数据库列“角色”。确保使用正确的列名,这取决于使用的命名策略(它可能与实体中的属性名不同,尤其是对于关系类型)

我已经用注释定义了列“role”的名称,我是否遗漏了什么

谢谢你的帮助

  ...

@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。