diff --git a/src/java/org/hibernate/cfg/reveng/RevEngUtils.java b/src/java/org/hibernate/cfg/reveng/RevEngUtils.java index f52091194f..19386f8cfd 100644 --- a/src/java/org/hibernate/cfg/reveng/RevEngUtils.java +++ b/src/java/org/hibernate/cfg/reveng/RevEngUtils.java @@ -1,14 +1,20 @@ package org.hibernate.cfg.reveng; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import org.hibernate.mapping.Column; import org.hibernate.mapping.MetaAttribute; import org.hibernate.mapping.Table; public class RevEngUtils { - public static List getPrimaryKeyInfoInRevengStrategy( + public static final String CLASS_DB_DESCRIPTION = "class-db-description"; + public static final String FIELD_DB_DESCRIPTION = "field-db-description"; + + public static List getPrimaryKeyInfoInRevengStrategy( ReverseEngineeringStrategy revengStrat, Table table, String defaultCatalog, @@ -57,7 +63,9 @@ public static Map getColumnToMetaAttributesInRevengStrateg tableIdentifier = new TableIdentifier(catalog, schema, table.getName()); result = revengStrat.columnToMetaAttributes(tableIdentifier, column); } - return result; + + Column col = table.getColumn(new Column(column)); + return putMetaAttributeDbDescription(result, FIELD_DB_DESCRIPTION, col == null ? null : col.getComment()); } public static Map getTableToMetaAttributesInRevengStrategy( @@ -74,10 +82,24 @@ public static Map getTableToMetaAttributesInRevengStrategy tableIdentifier = new TableIdentifier(catalog, schema, table.getName()); result = revengStrat.tableToMetaAttributes(tableIdentifier); } - return result; + + return putMetaAttributeDbDescription(result, CLASS_DB_DESCRIPTION, table.getComment()); } - - public static String getColumnToPropertyNameInRevengStrategy( + + private static Map putMetaAttributeDbDescription(Map map, + String metaAttributeName, String description) { + if (metaAttributeName != null && description != null) { + if (map == null) { + map = new HashMap<>(); + } + List comment = new ArrayList<>(); + comment.add(new SimpleMetaAttribute(description, true)); + map.put(metaAttributeName, MetaAttributeBinder.toRealMetaAttribute(metaAttributeName, comment)); + } + return map; + } + + public static String getColumnToPropertyNameInRevengStrategy( ReverseEngineeringStrategy revengStrat, Table table, String defaultCatalog, diff --git a/src/java/org/hibernate/cfg/reveng/dialect/OracleMetaDataDialect.java b/src/java/org/hibernate/cfg/reveng/dialect/OracleMetaDataDialect.java index 8d3b7fd782..33b8dd8a8a 100644 --- a/src/java/org/hibernate/cfg/reveng/dialect/OracleMetaDataDialect.java +++ b/src/java/org/hibernate/cfg/reveng/dialect/OracleMetaDataDialect.java @@ -31,9 +31,13 @@ public OracleMetaDataDialect() { /* ******* TABLE QUERIES ******* */ private static final String SQL_TABLE_BASE = - "select a.table_name, a.owner, b.comments, 'TABLE' " - + "from all_tables a left join all_tab_comments b " - + "on (a.owner=b.owner and a.table_name=b.table_name) "; + "select a.table_name, a.owner, " + + "(SELECT b.comments\n" + + " FROM all_tab_comments b\n" + + " WHERE a.owner = b.owner\n" + + " AND a.table_name = b.table_name) AS comments, " + + "'TABLE' " + + "from all_tables a "; private static final String SQL_TABLE_VIEW = " union all select view_name, owner, NULL, 'VIEW' from all_views "; @@ -46,9 +50,11 @@ public OracleMetaDataDialect() { private static final String SQL_TABLE_TABLE = SQL_TABLE_BASE + "where a.table_name like ?" + SQL_TABLE_VIEW + "where view_name like ?"; - private static final String SQL_TABLE_SCHEMA_AND_TABLE = SQL_TABLE_BASE - + "where a.owner like ? and a.table_name like ?" + SQL_TABLE_VIEW - + "where owner like ? and view_name like ?"; + private static final String SQL_TABLE_SCHEMA_AND_TABLE = + SQL_TABLE_BASE + + "where a.owner like ? and a.table_name like ?" + + SQL_TABLE_VIEW + + "where owner like ? and view_name like ?"; private PreparedStatement prepTableNone; @@ -61,14 +67,19 @@ public OracleMetaDataDialect() { /* ***************************** */ /* ******* INDEX QUERIES ******* */ /* ***************************** */ - private static final String SQL_INDEX_BASE = "select a.column_name, " - + "decode(b.uniqueness,'UNIQUE','false','true'), " - + "a.index_owner, a.index_name, a.table_name " - + "from all_ind_columns a left join all_indexes b on " - + "(a.table_name = b.table_name " - + " AND a.table_owner = b.table_owner " - + " AND a.index_name = b.index_name) " - + "where b.index_type not like 'FUNCTION-BASED%' "; + private static final String SQL_INDEX_BASE = + "SELECT a.column_name\n" + + " ,decode((SELECT b.uniqueness\n" + + " FROM all_indexes b\n" + + " WHERE a.table_name = b.table_name\n" + + " AND a.table_owner = b.table_owner\n" + + " AND a.index_name = b.index_name\n" + + " AND b.index_type NOT LIKE 'FUNCTION-BASED%'), 'UNIQUE', 'false', 'true') AS uniqueness\n" + + " ,a.index_owner\n" + + " ,a.index_name\n" + + " ,a.table_name\n" + + " FROM all_ind_columns a\n " + + " WHERE 1 = 1\n "; private static final String SQL_INDEX_ORDER = " order by a.table_name, a.column_position"; @@ -93,26 +104,30 @@ public OracleMetaDataDialect() { private PreparedStatement prepIndexSchemaAndTable; /* ****** COLUMN QUERIES ******* */ - private static final String SQL_COLUMN_BASE = "select a.column_name as COLUMN_NAME, a.owner as TABLE_SCHEM, " - + "decode(a.nullable,'N',0,1) as NULLABLE, " - + "decode(a.data_type, " - + "'FLOAT', decode(a.data_precision, null, a.data_length, a.data_precision), " - + "'NUMBER', decode(a.data_precision, null, a.data_length, a.data_precision), " - + "'VARCHAR2', a.char_length, " - + "'VARCHAR', a.char_length, " - + "'NVARCHAR2', a.char_length, " - + "'CHAR', a.char_length, " - + "'NCHAR', a.char_length, " - + "a.data_length) as COLUMN_SIZE, " - + "decode(a.data_type,'CHAR',1, 'DATE',91, 'FLOAT',6, " - + "'LONG',-1, 'NUMBER',2, 'VARCHAR2',12, 'BFILE',-13, " - + "'BLOB',2004, 'CLOB',2005, 'MLSLABEL',1111, 'NCHAR',1, 'NCLOB',2005, 'NVARCHAR2',12, " - + "'RAW',-3, 'ROWID',1111, 'UROWID',1111, 'LONG RAW', -4, " - + "'TIMESTAMP', 93, 'TIMESTAMP(6)', 93, 'XMLTYPE',2005, 1111) as DATA_TYPE, " - + "a.table_name as TABLE_NAME, a.data_type as TYPE_NAME, " - + "decode(a.data_scale, null, 0 ,a.data_scale) as DECIMAL_DIGITS, b.comments " - + "from all_tab_columns a left join all_col_comments b on " - + "(a.owner=b.owner and a.table_name=b.table_name and a.column_name=b.column_name) "; + private static final String SQL_COLUMN_BASE = + "SELECT a.column_name AS COLUMN_NAME\n" + + " ,a.owner AS TABLE_SCHEM\n" + + " ,decode(a.nullable, 'N', 0, 1) AS NULLABLE\n" + + " ,decode(a.data_type, 'FLOAT', decode(a.data_precision, NULL, a.data_length, a.data_precision), 'NUMBER',\n" + + " decode(a.data_precision, NULL, a.data_length, a.data_precision), 'VARCHAR2', a.char_length, 'VARCHAR',\n" + + " a.char_length, 'NVARCHAR2', a.char_length, 'CHAR', a.char_length, 'NCHAR', a.char_length, a.data_length) AS COLUMN_SIZE\n" + + " ,CASE\n" + + " WHEN a.data_type LIKE 'TIMESTAMP%' THEN\n" + + " 93\n" + + " ELSE\n" + + " decode(a.data_type, 'CHAR', 1, 'DATE', 91, 'FLOAT', 6, 'LONG', -1, 'NUMBER', 2, 'VARCHAR2', 12, 'BFILE', -13,\n" + + " 'BLOB', 2004, 'CLOB', 2005, 'MLSLABEL', 1111, 'NCHAR', 1, 'NCLOB', 2005, 'NVARCHAR2', 12, 'RAW', -3,\n" + + " 'ROWID', 1111, 'UROWID', 1111, 'LONG RAW', -4, 'XMLTYPE', 2005, 1111)\n" + + " END AS DATA_TYPE\n" + + " ,a.table_name AS TABLE_NAME\n" + + " ,a.data_type AS TYPE_NAME\n" + + " ,decode(a.data_scale, NULL, 0, a.data_scale) AS DECIMAL_DIGITS\n" + + " ,(SELECT b.comments\n" + + " FROM all_col_comments b\n" + + " WHERE a.owner = b.owner\n" + + " AND a.table_name = b.table_name\n" + + " AND a.column_name = b.column_name) AS COMMENTS\n" + + " FROM all_tab_columns a\n"; private static final String SQL_COLUMN_ORDER = " order by column_id "; @@ -161,8 +176,9 @@ public OracleMetaDataDialect() { /* ***************************** */ /* ******** PK QUERIES ********* */ /* ***************************** */ - private static final String SQL_PK_BASE = "select c.table_name, c.column_name, c.position, c.constraint_name, " - + "c.owner from all_cons_columns c left join all_constraints k on " + private static final String SQL_PK_BASE = + "select c.table_name, c.column_name, c.position, c.constraint_name, " + + "c.owner from all_cons_columns c join all_constraints k on " + "(k.owner = c.owner AND k.table_name = c.table_name AND k.constraint_name = c.constraint_name) " + "where k.constraint_type = 'P' "; @@ -190,16 +206,37 @@ public OracleMetaDataDialect() { /* ***************************** */ /* ******** FK QUERIES ********* */ /* ***************************** */ - private static final String SQL_FK_BASE = "select p.table_name, p.owner, f.owner, f.table_name, " - + "fc.column_name, pc.column_name, f.constraint_name, fc.position " - + "from all_constraints p left join all_cons_columns pc on " - + "(pc.owner = p.owner and pc.constraint_name = p.constraint_name and pc.table_name = p.table_name) " - + "left join all_constraints f on (p.owner = f.r_owner and p.constraint_name = f.r_constraint_name) " - + "left join all_cons_columns fc on " - + "(fc.owner = f.owner and fc.constraint_name = f.constraint_name and fc.table_name = f.table_name and" - + " fc.position = pc.position) where f.constraint_type = 'R' AND p.constraint_type = 'P' "; - - private static final String SQL_FK_ORDER = " order by f.table_name, f.constraint_name, fc.position "; + private static final String SQL_FK_BASE = + "SELECT p.table_name as p_table_name\n" + + " ,p.owner as p_owner\n" + + " ,f.owner as f_owner\n" + + " ,f.table_name as f_table_name\n" + + " ,(SELECT fc.column_name\n" + + " FROM all_cons_columns fc\n" + + " WHERE fc.owner = f.owner\n" + + " AND fc.constraint_name = f.constraint_name\n" + + " AND fc.table_name = f.table_name\n" + + " AND fc.position = pc.position) AS fc_column_name\n" + + " ,pc.column_name as pc_column_name\n" + + " ,f.constraint_name\n" + + " ,(SELECT fc.position\n" + + " FROM all_cons_columns fc\n" + + " WHERE fc.owner = f.owner\n" + + " AND fc.constraint_name = f.constraint_name\n" + + " AND fc.table_name = f.table_name\n" + + " AND fc.position = pc.position) AS fc_position\n" + + " FROM all_constraints p\n" + + " JOIN all_cons_columns pc\n" + + " ON pc.owner = p.owner\n" + + " AND pc.constraint_name = p.constraint_name\n" + + " AND pc.table_name = p.table_name\n" + + " JOIN all_constraints f\n" + + " ON p.owner = f.r_owner\n" + + " AND p.constraint_name = f.r_constraint_name\n" + + " WHERE f.constraint_type = 'R'\n" + + " AND p.constraint_type = 'P'\n"; + + private static final String SQL_FK_ORDER = " order by f.table_name, f.constraint_name, position "; private static final String SQL_FK_NONE = SQL_FK_BASE + SQL_FK_ORDER; @@ -225,8 +262,7 @@ public Iterator> getTables(final String catalog, final String try { log.debug("getTables(" + catalog + "." + schema + "." + table + ")"); - ResultSet tableRs; - tableRs = getTableResultSet( schema, table ); + ResultSet tableRs = getTableResultSet( schema, table ); return new ResultSetIterator(null, tableRs, getSQLExceptionConverter()) { @@ -241,7 +277,7 @@ protected Map convertRow(ResultSet tableResultSet) element.put("TABLE_SCHEM", tableResultSet.getString(2)); element.put("TABLE_CAT", null); element.put("TABLE_TYPE", tableResultSet.getString(4)); - element.put("REMARKS", tableResultSet.getString(3)); + element.put("REMARKS", tableResultSet.getString(3)); log.info( element.toString() ); return element; } @@ -309,7 +345,7 @@ protected Throwable handleSQLException(SQLException e) { throw getSQLExceptionConverter().convert( e, "Exception while getting index info for " - + TableNameQualifier.qualify(catalog, schema, table), null); + + TableNameQualifier.qualify(catalog, schema, table) + ": " + e.getMessage(), null); } } @@ -409,8 +445,7 @@ public Iterator> getExportedKeys(final String catalog, final log.debug("getExportedKeys(" + catalog + "." + schema + "." + table + ")"); - ResultSet pExportRs; - pExportRs = getExportedKeysResultSet( schema, table ); + ResultSet pExportRs = getExportedKeysResultSet( schema, table ); return new ResultSetIterator(null, pExportRs, getSQLExceptionConverter()) { @@ -573,8 +608,7 @@ private ResultSet getExportedKeysResultSet(final String schema, final String tab prepFkNone = con .prepareStatement(SQL_FK_NONE); prepFkSchema = con.prepareStatement(SQL_FK_SCHEMA); prepFkTable = con.prepareStatement(SQL_FK_TABLE); - prepFkSchemaAndTable = con - .prepareStatement(SQL_FK_SCHEMA_AND_TABLE); + prepFkSchemaAndTable = con.prepareStatement(SQL_FK_SCHEMA_AND_TABLE); log.debug(" foreign key queries prepared!"); } diff --git a/src/java/org/hibernate/tool/ant/Hbm2JavaExporterTask.java b/src/java/org/hibernate/tool/ant/Hbm2JavaExporterTask.java index 0b31df229d..7cc2d3cb6c 100644 --- a/src/java/org/hibernate/tool/ant/Hbm2JavaExporterTask.java +++ b/src/java/org/hibernate/tool/ant/Hbm2JavaExporterTask.java @@ -17,6 +17,10 @@ public class Hbm2JavaExporterTask extends ExporterTask { boolean jdk5 = false; + boolean annotateFields = false; + + boolean javaDocFromDbComments = false; + public Hbm2JavaExporterTask(HibernateToolTask parent) { super( parent ); } @@ -29,11 +33,21 @@ public void setJdk5(boolean b) { jdk5 = b; } - protected Exporter configureExporter(Exporter exp) { + public void setAnnotateFields(boolean annotateFields) { + this.annotateFields = annotateFields; + } + + public void setJavaDocFromDbComments(boolean javaDocFromDbComments) { + this.javaDocFromDbComments = javaDocFromDbComments; + } + + protected Exporter configureExporter(Exporter exp) { POJOExporter exporter = (POJOExporter) exp; super.configureExporter( exp ); - exporter.getProperties().setProperty("ejb3", ""+ejb3); + exporter.getProperties().setProperty("ejb3", "" + ejb3); exporter.getProperties().setProperty("jdk5", ""+jdk5); + exporter.getProperties().setProperty("annotateFields", "" + annotateFields); + exporter.getProperties().setProperty("javaDocFromDbComments", "" + javaDocFromDbComments); return exporter; } diff --git a/src/java/org/hibernate/tool/hbm2x/MetaAttributeConstants.java b/src/java/org/hibernate/tool/hbm2x/MetaAttributeConstants.java index 891566f1a1..00b5108722 100644 --- a/src/java/org/hibernate/tool/hbm2x/MetaAttributeConstants.java +++ b/src/java/org/hibernate/tool/hbm2x/MetaAttributeConstants.java @@ -7,6 +7,9 @@ public interface MetaAttributeConstants { static final String CLASS_MODIFIER = "class-modifier"; static final String SCOPE_CLASS = "scope-class"; static final String CLASS_DESCRIPTION = "class-description"; + static final String CLASS_DB_DESCRIPTION = "class-db-description"; + static final String FIELD_DESCRIPTION = "field-description"; + static final String FIELD_DB_DESCRIPTION = "field-db-description"; static final String IMPLEMENTS = "implements"; static final String EXTENDS = "extends"; static final String GEN_PROPERTY = "gen-property"; // in templates. diff --git a/src/java/org/hibernate/tool/hbm2x/POJOExporter.java b/src/java/org/hibernate/tool/hbm2x/POJOExporter.java index 2d255c0d18..66cda22308 100644 --- a/src/java/org/hibernate/tool/hbm2x/POJOExporter.java +++ b/src/java/org/hibernate/tool/hbm2x/POJOExporter.java @@ -41,6 +41,12 @@ protected void setupContext() { if(!getProperties().containsKey("jdk5")) { getProperties().put("jdk5", "false"); } + if(!getProperties().containsKey("annotateFields")) { + getProperties().put("annotateFields", "false"); + } + if(!getProperties().containsKey("javaDocFromDbComments")) { + getProperties().put("javaDocFromDbComments", "false"); + } super.setupContext(); } } diff --git a/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java b/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java index 76eceba71a..9bcfbc5adf 100644 --- a/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java +++ b/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java @@ -144,16 +144,29 @@ public boolean getMetaAsBool(String attribute, boolean defaultValue) { return MetaAttributeHelper.getMetaAsBool( meta.getMetaAttribute( attribute ), defaultValue ); } - public String getClassJavaDoc(String fallback, int indent) { + public String getClassJavaDoc(String fallback, int indent) { MetaAttribute c = meta.getMetaAttribute( CLASS_DESCRIPTION ); if ( c == null ) { - return c2j.toJavaDoc( fallback, indent ); + return c2j.toJavaDoc( fallback, indent ); } else { - return c2j.toJavaDoc( getMetaAsString( CLASS_DESCRIPTION ), indent ); + return c2j.toJavaDoc( MetaAttributeHelper.getMetaAsString(c), indent ); } } + public String getClassJavaDoc(String fallback, int indent, boolean javaDocFromDbComments) { + MetaAttribute c = meta.getMetaAttribute( CLASS_DESCRIPTION ); + if ( c == null ) { + if (javaDocFromDbComments) { + c = meta.getMetaAttribute(CLASS_DB_DESCRIPTION); + } + if ( c == null ) { + return c2j.toJavaDoc( fallback, indent ); + } + } + return c2j.toJavaDoc( MetaAttributeHelper.getMetaAsString(c), indent ); + } + public String getClassModifiers() { String classModifiers = null; @@ -535,26 +548,44 @@ public boolean getMetaAttribAsBool(MetaAttributable pc, String attribute, boolea } public boolean hasFieldJavaDoc(Property property) { - return property.getMetaAttribute("field-description")!=null; + return property.getMetaAttribute(FIELD_DESCRIPTION)!=null; } + public boolean hasFieldJavaDoc(Property property, boolean javaDocFromDbComments) { + return property.getMetaAttribute(FIELD_DESCRIPTION)!=null || + (javaDocFromDbComments && property.getMetaAttribute(FIELD_DB_DESCRIPTION)!=null); + } + public String getFieldJavaDoc(Property property, int indent) { - MetaAttribute c = property.getMetaAttribute( "field-description" ); + MetaAttribute c = property.getMetaAttribute( FIELD_DESCRIPTION ); if ( c == null ) { return c2j.toJavaDoc( "", indent ); } else { - return c2j.toJavaDoc( c2j.getMetaAsString( property, "field-description" ), indent ); + return c2j.toJavaDoc( MetaAttributeHelper.getMetaAsString(c), indent ); } } + public String getFieldJavaDoc(Property property, int indent, boolean javaDocFromDbComments) { + MetaAttribute c = property.getMetaAttribute( FIELD_DESCRIPTION ); + if ( c == null ) { + if (javaDocFromDbComments) { + c = property.getMetaAttribute( FIELD_DB_DESCRIPTION ); + } + if ( c == null ) { + return c2j.toJavaDoc("", indent); + } + } + return c2j.toJavaDoc( MetaAttributeHelper.getMetaAsString(c), indent ); + } + public String getFieldDescription(Property property){ - MetaAttribute c = property.getMetaAttribute( "field-description" ); + MetaAttribute c = property.getMetaAttribute( FIELD_DESCRIPTION ); if ( c == null ) { return ""; } else { - return c2j.getMetaAsString( property, "field-description" ); + return MetaAttributeHelper.getMetaAsString(c); } } diff --git a/src/templates/pojo/PojoFields.ftl b/src/templates/pojo/PojoFields.ftl index d2bf0547c5..20fce7d240 100644 --- a/src/templates/pojo/PojoFields.ftl +++ b/src/templates/pojo/PojoFields.ftl @@ -1,8 +1,8 @@ <#-- // Fields --> -<#foreach field in pojo.getAllPropertiesIterator()><#if pojo.getMetaAttribAsBool(field, "gen-property", true)> <#if pojo.hasMetaAttribute(field, "field-description")> /** - ${pojo.getFieldJavaDoc(field, 0)} +<#foreach field in pojo.getAllPropertiesIterator()><#if pojo.getMetaAttribAsBool(field, "gen-property", true)><#if annotateFields ><#if pojo.hasFieldJavaDoc(field, javaDocFromDbComments)> /** + ${pojo.getFieldJavaDoc(field, 0, javaDocFromDbComments)} */ - ${pojo.getFieldModifiers(field)} ${pojo.getJavaTypeName(field, jdk5)} ${c2j.keyWordCheck(field.name)}<#if pojo.hasFieldInitializor(field, jdk5)> = ${pojo.getFieldInitialization(field, jdk5)}; +<#assign property = field > <#-- Variable property is used in GetPropertyAnnotation.ftl--> <#include "GetPropertyAnnotation.ftl"/>${pojo.getFieldModifiers(field)} ${pojo.getJavaTypeName(field, jdk5)} ${c2j.keyWordCheck(field.name)}<#if pojo.hasFieldInitializor(field, jdk5)> = ${pojo.getFieldInitialization(field, jdk5)}; diff --git a/src/templates/pojo/PojoPropertyAccessors.ftl b/src/templates/pojo/PojoPropertyAccessors.ftl index 74f66a35f7..c5cde1f580 100644 --- a/src/templates/pojo/PojoPropertyAccessors.ftl +++ b/src/templates/pojo/PojoPropertyAccessors.ftl @@ -1,12 +1,12 @@ <#-- // Property accessors --> <#foreach property in pojo.getAllPropertiesIterator()> <#if pojo.getMetaAttribAsBool(property, "gen-property", true)> - <#if pojo.hasFieldJavaDoc(property)> +<#if !annotateFields ><#if pojo.hasFieldJavaDoc(property, javaDocFromDbComments) > /** - * ${pojo.getFieldJavaDoc(property, 4)} + ${pojo.getFieldJavaDoc(property, 4, javaDocFromDbComments)} */ - <#include "GetPropertyAnnotation.ftl"/> + <#include "GetPropertyAnnotation.ftl"/> ${pojo.getPropertyGetModifiers(property)} ${pojo.getJavaTypeName(property, jdk5)} ${pojo.getGetterSignature(property)}() { return this.${c2j.keyWordCheck(property.name)}; } diff --git a/src/templates/pojo/PojoTypeDeclaration.ftl b/src/templates/pojo/PojoTypeDeclaration.ftl index 010fee44db..676c6cac6c 100644 --- a/src/templates/pojo/PojoTypeDeclaration.ftl +++ b/src/templates/pojo/PojoTypeDeclaration.ftl @@ -1,5 +1,5 @@ /** -${pojo.getClassJavaDoc(pojo.getDeclarationName() + " generated by hbm2java", 0)} +${pojo.getClassJavaDoc(pojo.getDeclarationName() + " generated by hbm2java", 0, javaDocFromDbComments)} */ <#include "Ejb3TypeDeclaration.ftl"/> ${pojo.getClassModifiers()} ${pojo.getDeclarationType()} ${pojo.getDeclarationName()} ${pojo.getExtendsDeclaration()} ${pojo.getImplementsDeclaration()} \ No newline at end of file