【问题标题】:Automatically add `insertable = false, updatable = false` to Netbeans-generated entities自动将 `insertable = false, updatable = false` 添加到 Netbeans 生成的实体
【发布时间】:2016-03-28 00:58:20
【问题描述】:

我正在使用 Netbeans 开发一个 Java EE 项目。我使用数据库自​​动生成了实体和 JPA 控制器。

我现在想通过添加更多表或更新现有表来更新数据库。我遇到的问题是我必须重新生成所有实体和 JPA 控制器——我不希望这样做,因为我的大多数实体都被修改为包含

insertable = false, updatable = false

在数据库使用current_timestamp@Column 中。如果我重新生成它们,我将不得不再次修改所有实体以包含 insertable = false, updatable = false

这就是我创作后想要达到的目标。

@Column(name = "CREATED_ON", insertable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date createdOn;

【问题讨论】:

  • 通常,将 Hibernate 的属性 hibernate.hbm2ddl.auto 设置为 update 应该只更新检测到更改的架构,因此它应该可以解决您的问题。你可以试试这个方法吗?
  • 我无法在我的项目中找到该属性
  • 如果是这样,请在您的 persistence.xml 文件中包含以下行:<property name="hibernate.hbm2ddl.auto" value="update"/>

标签: java jpa jakarta-ee netbeans entities


【解决方案1】:

您需要分两步完成,每一步都可以选择要创建的对象,如果选择正确,您将不会覆盖现有的类:

  1. 从数据库生成实体
  2. 从实体类生成控制器

当我从现有表生成实体时,您可以选择要创建的表。只需执行此操作,不要选择现有的。右键单击项目并选择 New->other->Persistence(category)->Entity Classes From Database 我得到以下对话框:

然后,除了选择 JPA Controller Classes from Entity Classes

之外,做同样的事情

【讨论】:

  • 这并没有回答自动将insertable = false, updatable = false添加到Entity中的current_timestamp变量的问题
猜你喜欢
  • 2011-06-17
  • 2020-03-18
  • 2013-04-10
  • 1970-01-01
  • 2011-04-17
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多