【问题标题】:Hibernate @Column annotation cannot mapping to databaseHibernate @Column 注解无法映射到数据库
【发布时间】:2018-06-23 16:37:29
【问题描述】:

我在 Spring Boot 和 PostgreSql 中有一个实体,我正在使用 @Column 注释映射到数据库。这是我的实体片段代码:

@Entity(name = "users")
@Table(name = "users", schema = "public")
public class User implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 12355345L;
    @Id
    @Column(name = "user_id")
    private String userid;
    @Column(name = "user_name")
    private Integer username;

当 id 使用邮递员运行和测试时,我得到一个错误:

org.springframework.dao.InvalidDataAccessResourceUsageException: 可以 不提取结果集; SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException:无法提取 结果集

 Caused by: org.postgresql.util.PSQLException: ERROR: column users0_.usersid does not exist
  Hint: Perhaps you meant to reference the column "users0_.user_id".

我不知道为什么。如何解决?

【问题讨论】:

  • @Table(name = "users", schema = "public") in this line is users your table?意思是名字对吗?并且无需在@entity中添加名称
  • 向我们展示查询。

标签: postgresql hibernate spring-boot


【解决方案1】:

有几件事可供您参考。

1) 需要检查您的 spring.jpa.hibernate.ddl-auto 属性,因为该属性取决于该属性,数据库表、列将由 Hibernate 填充。

2) 接下来删除现有表并将值更改为spring.jpa.hibernate.hbm2ddl.auto=update,以便它将根据实体类中提供的注释创建/更新表

3) 删除不必要的注释。跟随就够了。

@Entity
@Table(name = "users")
public class User implements Serializable {

 @Id
 @Column(name = "user_id")
 private String userid;

 ................

【讨论】:

  • 天啊。对不起,这是我的错 :( 。导入 @column 注释 beetwen javax.persistence.Column 和 javax.jdo.annotations.Column 时我弄错了 lib 。Tks 寻求帮助,非常抱歉。
猜你喜欢
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2023-03-04
  • 1970-01-01
  • 2014-06-02
相关资源
最近更新 更多