【问题标题】:Missing @CreationTimestamp and @UpdateTimestamp after generating persistence mapping by database schema通过数据库模式生成持久性映射后缺少 @CreationTimestamp 和 @UpdateTimestamp
【发布时间】:2020-10-03 23:36:06
【问题描述】:

此链接How to generate persistence mapping by database schema during build of the project? 描述了一种通过数据库模式生成持久性映射的方法 - 为 Hibernate 自动创建实体类。

我已按照说明进行设置: 这件事的结果与预想的不同。 该表是在 MySQL 中使用此脚本创建的:

CREATE TABLE IF NOT EXISTS orders(
  order_id INT PRIMARY KEY,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at  TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

映射后,并没有给created_at和updated_at字段添加@CreationTimestamp和@UpdateTimestamp注解。如何让它能够创建这些注解?

【问题讨论】:

    标签: java hibernate maven intellij-idea hibernate-mapping


    【解决方案1】:

    您可以尝试使用脚本扩展在项目工具窗口中为选定的表生成Java POJO实体类。在打开的对话框中,指定应在其中生成 .java 类文件的目录。请参阅随附的屏幕截图。您可以自定义脚本以生成任何文本。另请参阅 these examplesGenerate simple classes from database objects in DataGrip 博客文章。

    【讨论】:

    • 请问,是否可以在项目构建过程中添加这个?
    • 否,此操作 (Generate POJOs) 无法配置为自动运行,例如一个项目构建。请随时通过youtrack.jetbrains.com/issues/IDEA 提出请求
    • 请问,“通过数据库模式生成持久性映射”的代码从哪里得到
    【解决方案2】:

    IntelliJ IDEA 不会在字段上添加 @CreationTimestamp 和 @UpdateTimestamp 注释,您必须在字段上手动添加这些注释。

    【讨论】:

    • 我的项目每天都在改变数据库结构,因为它是一个新项目。我不允许将我的类保存在存储库中,它们必须是自动生成的。我需要找到一种方法来通过数据库自动生成带有这些注释的类。我需要在项目构建期间启动这一代创建
    • 总是自动生成?项目结构改变了,你必须更新,但总是生成不是一个好主意。
    • 我被赋予了提供它的任务。我无法将我的课程保存在存储库中。我使用 Flyway 生成带有 SQL 脚本的数据库,并基于此 SQL 脚本或我必须自动生成类的数据库。每次数据库更改时,我都不允许花时间更改课程
    猜你喜欢
    • 2016-06-14
    • 2017-02-11
    • 2016-05-03
    • 2018-07-27
    • 2013-10-18
    • 2010-11-20
    • 2019-04-09
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多