Author: bleny Date: 2011-06-21 16:21:35 +0200 (Tue, 21 Jun 2011) New Revision: 2304 Url: http://nuiton.org/repositories/revision/topia/2304 Log: change generated mapping in entity to use org.hibernate.type.EnumType instead of serializing values in DB Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java 2011-06-21 07:53:37 UTC (rev 2303) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java 2011-06-21 14:21:35 UTC (rev 2304) @@ -344,6 +344,9 @@ String declaringElementDBName = TopiaGeneratorUtil.getDbName(attr.getDeclaringElement()); String tableName = declaringElementDBName + "_" + attrName; + boolean attrIsEnumeration = attr.getClassifier() != null + && attr.getClassifier().isEnum(); + if (attrType.trim().endsWith("[]")) { attrType = attrType.trim().substring(0, attrType.trim().length()-2); @@ -380,7 +383,10 @@ // optionalAttributes += " unique=\"true\""; } optionalAttributes += generateFromTagValue(HIBERNATE_ATTRIBUTE_NOT_NULL, TopiaGeneratorUtil.getNotNullTagValue(attr)); -/*{<%=prefix%> <property name="<%=attrName%>" type="<%=attrType%>" access="<%=accessField%>"}*/ +/*{<%=prefix%> <property name="<%=attrName%>" access="<%=accessField%>"}*/ + if ( ! attrIsEnumeration) { +/*{ type="<%=attrType%>"}*/ + } optionalAttributes = optionalAttributes.trim(); String[] columnNames = columnNamesMap.get(attrType); @@ -422,8 +428,18 @@ // simple case with no column node to generate -/*{ column="<%=attrColumn%>" node="<%=attrName%>"<%=optionalAttributes%>/> +/*{ column="<%=attrColumn%>" node="<%=attrName%>"<%=optionalAttributes%>}*/ + if (attrIsEnumeration) { +/*{> +<%=prefix%> <type name="org.hibernate.type.EnumType"> +<%=prefix%> <param name="enumClass"><%=attrType%></param> +<%=prefix%> </type> +<%=prefix%> </property> }*/ + } else { +/*{/> +}*/ + } } else { // there is some attributes to write for the column node