Is there any way to specify SQL comments through JPA annotations? Comments for tables and columns.
There is a way, at least for MySQL. It depends on your database engine. For MySQL you could add the comment to the columnDefinition. Here is an example for a column:
/**
* 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;
As you can see the comment ('The KEY obviously') is part of the column definition. But it's not standard JPA as you need to change it if you change the database engine. The same way you must change the column definition if you use a non-standard SQL type and you change the database engine.
The standards(http://savage.net.au/SQL/) do not seem to define any way to define table or column comments (looks like they don't even mention them). So, the syntax for comments on tables/columns can vary from one DBMS to another. I think thats why JPA offers no generic way to do that
Is there any way to specify SQL comments through JPA annotations? Comments for tables and columns.
No. If you want to define tables and columns comments, your best option is to do it after the facts in the generated DDL, before executing it against your database.