当前位置: 首页 > 知识库问答 >
问题:

Hibernate从Spring Boot1.4开始重命名一些列

魏景龙
2023-03-14

hibernate:alter table t_myTable添加列acolumnname int4

hibernate:alter table t_myTable添加列acolumnname numeric(19,2)

jpa:
    show-sql: true
    hibernate:
      ddl-auto: update
    properties:
      hibernate.cache.use_second_level_cache: false
      hibernate.cache.use_query_cache: false
      hibernate.generate_statistics: true
      naming.physical-strategy: PhysicalNamingStrategyStandardImpl

在按照Veselin Davidov的要求搜索实体并在此发布代码后,我注意到一些列被接受,而其他列则不被接受。

这些实体是从一个公司框架创建的,该框架使用DB结构(表、字段、字段类型...)解析JSON并生成JAVA实体类。因此,在看到来自SAM的答案之后,我更改了实体模板的代码,以添加@column(name=“your_column_name”)。现在,当Hibernate启动时,它不会添加名称错误的列,而是使用DB列。

共有1个答案

吉栋
2023-03-14

如果您的Hibernate实体类如下所示:

@Entity
public class Registration{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    @Column
    @Basic
    private String name;

    // getters and setters

}

然后您的注册表将具有以“id”和“name”命名的字段,因为您使用了auto-ddl=update。为了避免这种情况,可以使用@column(name=“your_column_name”)指定列名,如下所示:

@Table(name = "registration")
@Entity
public class Registration{

   @Id
   @Column(name = "r_id")
   @GeneratedValue(strategy = GenerationType.AUTO)
   private int id;

   @Basic
   @Column(name = "r_name")
   private String name;

   // getters and setters

}

如果您使用的是Intellij IDEA,那么IDE可以生成所需的实体类。

 类似资料:
  • 我正在将一个项目从Hibernate 4.2.6迁移到5.2.0。 persistence.xml文件如下所示 唯一的区别是setParameter中的0索引。 persistence.xml也非常相似

  • 问题内容: 我正在尝试使用以下SQL表达式重命名MySQL社区服务器5.5.27中的列: 我也试过 但它说: 错误:检查与您的MySQL服务器版本相对应的手册 问题答案: 使用以下查询: 该功能在Oracle数据库中使用。 注意用于MySQL的反引号,而双引号用于Oracle的语法。 另请注意,MySQL 8.0可能不接受反引号。在这种情况下,不带反引号的情况下执行查询,它可能会起作用。 @ la

  • 我正在尝试加载存储在数据库中的事件。我当时正在arshaw的FullCalendar网站上阅读decumentation,但没有成功。在这里您可以看到我的用户详细信息站点,在这里您可以看到包含事件的表 在my InitDatabaseService中,存储了一个事件: 这很有效。但我不知道如何将此事件添加到日历而不是表中。这是我日程安排中的完整日历脚本。html: 我尝试使用foreach添加所有

  • 也许我想多了。我想每周一上午9点发送本地通知,直到满足某些条件。我知道这可以通过设置的和组件来完成。我遇到的问题是我将传递给的值取决于正在使用的。如果我理解正确,则取决于用户的设置。例如,如果用户的日历周从周日开始,我会传递1到,但如果一周从周六开始,我会传递2。 我的问题是,我该如何解释时区、夏令时和周开始日之类的事情?

  • 我需要将一些MySQL代码转换为一个名为query的JPA 示例 从标题类似“%Matrix%”的电影中选择* 我的猜测会吗 org.springframework.dao.invalidDataAccessapiUsageException:org.hibernate.QueryParameterException:找不到命名参数[title];嵌套异常为java.lang.IllegalArg

  • 问题内容: 已被弃用,但我找不到任何示例,JPA 2.1等效项将是什么样子? 没有不推荐使用的注释该如何实现? 问题答案: 如文档所示,此注释不能应用于任何对象: @Target(值= {}) 因此,它只能用作另一个注释的一部分(在“ 另请参见” 部分中列出):