【问题标题】:How to specify SQL comments through JPA annotations?如何通过 JPA 注解指定 SQL 注释?
【发布时间】:2010-09-27 20:40:46
【问题描述】:

有没有办法通过JPA注解来指定SQL cmets?表和列的注释。

【问题讨论】:

    标签: java orm jpa


    【解决方案1】:

    有一种方法,至少对于 MySQL 而言。这取决于您的数据库引擎。 对于 MySQL,您可以将注释添加到 columnDefinition。 以下是列的示例:

    /**
     * Database id.
     */
    @javax.persistence.Id
    @javax.persistence.GeneratedValue(strategy = javax.persistence.GenerationType.AUTO)
    @javax.persistence.Column(columnDefinition = "SMALLINT UNSIGNED COMMENT 'The KEY obviously'")
    private Long id;
    

    如您所见,注释(“显然是 KEY”)是列定义的一部分。但它不是标准的 JPA,因为如果您更改数据库引擎,则需要更改它。如果您使用非标准 SQL 类型并更改数据库引擎,则必须更改列定义。

    【讨论】:

    • 它对我有用。谢谢。这是我的代码。我希望它会帮助某人:@Column(columnDefinition=" INT(11) NOT NULL COMMENT '0 for no action, 1 for executed, 2 for validated, 3 for aproved'") private int status;
    【解决方案2】:

    有没有办法通过JPA注解来指定SQL cmets?表和列的注释。

    没有。如果要定义表和列 cmets,最好的选择是在生成的 DDL 中的事实之后,然后对数据库执行它。

    【讨论】:

      【解决方案3】:

      标准(http://savage.net.au/SQL/) 似乎没有定义任何方式来定义表或列 cmets(看起来他们甚至没有提到它们)。因此,表/列上的 cmets 语法可能因一个 DBMS 而异。我认为这就是为什么 JPA 没有提供通用的方法来做到这一点

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-02
        • 2011-07-06
        • 2011-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多