【问题标题】:JPA generate entities with database commentsJPA 生成带有数据库注释的实体
【发布时间】:2012-05-05 17:53:13
【问题描述】:

我在 JPA 项目中使用 Eclipse IDE 生成实体(域类)。我可以生成域类,但我需要用数据库的 cmets (postgreSQL) 生成这个类。 例如在数据库中,我有一个名为“user”的表,这个表有注释“包含用户数据的表”,这个表有一个名为“login”的字段,带有注释“用户的登录”。我需要这个类被创建为:

/**
* Table containing user data
* 
*/
@Entity 
@Table(name="user")
public class User implements Serializable {
    private static final long serialVersionUID = 1L;

    /** Login of the user */
    @column(name="login")
    private String login;

有可能吗?

谢谢。

【问题讨论】:

  • 顺便说一句:我不会使用“用户”作为表名。 Postgres 中的Mixed case identifiers 是一个持续不断的混淆源。 user 在每个 SQL 标准和 Postgres 中都是 reserved word
  • 好吧,这只是一个例子,我不在 Postgre 中创建这个表/字段。
  • 数据库名称为PostgreSQL或简称Postgres。不是没有“Postgre”这样的东西。不过,我无法帮助解决 Java 问题,抱歉。
  • 欧文,让我们专注于解决所提出的问题。真正重要的是每个人都明白我所说的“Postgre”是什么意思
  • @vctlzac:我在评论。如果我对您的问题有解决方案,我会写一个答案。人们使用“postgres”搜索内容,但不会找到“postgre”。这很重要。

标签: java postgresql jpa


【解决方案1】:

我建议您查看hibernate-tools.jar ANT 任务。

如果它不支持它,您可以轻松修改源代码(查看 POJOClass、BasicPOJOClass、EntityPOJOClass)和/或负责生成实体字段的模板 PojoFields.ftl(这是一个 Freemarker 模板) .

没时间详细看,希望对你有帮助

【讨论】:

    【解决方案2】:

    'user' 表无法创建,因为 PostgreSQL 有自己的名为 'user' 的表。所以你必须选择另一个名字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 2016-01-02
      • 2011-08-15
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多