[hibernate-issues] [Hibernate-JIRA] Updated: (HBX-1132) POJO java code exporter (<hbm2java>) should generate field or property access Java annotated files
Julien Kronegg (JIRA)
noreply at atlassian.com
Tue Aug 18 10:14:19 EDT 2009
[ http://opensource.atlassian.com/projects/hibernate/browse/HBX-1132?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julien Kronegg updated HBX-1132:
--------------------------------
Attachment: GetFieldAnnotation.ftl
PojoPropertyAccessors.ftl
PojoFields.ftl
> POJO java code exporter (<hbm2java>) should generate field or property access Java annotated files
> ---------------------------------------------------------------------------------------------------
>
> Key: HBX-1132
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HBX-1132
> Project: Hibernate Tools
> Issue Type: New Feature
> Components: hbm2java
> Affects Versions: 3.2.4 Beta1
> Environment: http://anonsvn.jboss.org/repos/hibernate/branches/Branch_3_2/HibernateExt/tools/src/templates/pojo/PojoFields.ftl
> http://anonsvn.jboss.org/repos/hibernate/branches/Branch_3_2/HibernateExt/tools/src/templates/pojo/PojoPropertyAccessors.ftl
> Reporter: Julien Kronegg
> Priority: Minor
> Attachments: GetFieldAnnotation.ftl, PojoFields.ftl, PojoPropertyAccessors.ftl
>
>
> Currently, the POJO java code exporter generates only property access mode Java files, i.e. the JPA annotations are put on the getters only.
> This is done in PojoFields.ftl (which does not contain annotations on fields) and in PojoPropertyAccessors.ftl (which includes the GetPropertyAnnotation.ftl that produces annotations on the methods).
> It would be nice if the hbm2java task generate also field or property access mode entities (with property access mode by default).
> The implementation could be based on the following workaround.
> Workaround:
> ------------------
> 1) extract the following files from the hibernate-tools.jar/ and put them in the /pojo/ directory:
> PojoFields.ftl
> PojoPropertyAccessors.ftl
> GetPropertyAnnotation.ftl
> Ejb3PropertyGetAnnotation.ftl
> 2) rename GetPropertyAnnotation.ftl to GetFieldAnnotation.ftl and change references from "property" to "field", resulting in the attached file GetFieldAnnotation.ftl
> 3) rename Ejb3PropertyGetAnnotation.ftl to Ejb3FieldGetAnnotation.ftl and change references from "property" to "field", resulting in the attached file Ejb3FieldGetAnnotation.ftl
> 4) edit PojoFields.ftl to add a conditional inclusion of GetFieldAnnotation.ftl (resulting in the attached PojoFields.ftl):
> - </#if> ${pojo.getFieldModifiers(field)} ${pojo.getJavaTypeName(field, jdk5)} ${field.name}<#if pojo.hasFieldInitializor(field, jdk5)> = ${pojo.getFieldInitialization(field, jdk5)}</#if>;
> + </#if>
> + <#if exporter.properties.containsKey('jpaAccessMode') && jpaAccessMode.equals('field')>
> + <#include "GetFieldAnnotation.ftl"/>
> + </#if>
> + ${pojo.getFieldModifiers(field)} ${pojo.getJavaTypeName(field, jdk5)} ${field.name}<#if pojo.hasFieldInitializor(field, jdk5)> = ${pojo.getFieldInitialization(field, jdk5)}</#if>;
> 5) edit the PojoPropertyAccessors.ftl to change to a conditional inclusion of GetPropertyAnnotation.ftl (resulting in the attached PojoPropertyAccessors.ftl):
> - <#include "GetPropertyAnnotation.ftl"/>
> + <#if !exporter.properties.containsKey('jpaAccessMode') || !jpaAccessMode.equals('field')>
> + <#include "GetPropertyAnnotation.ftl"/>
> + </#if>
> 6) in the Ant build.xml, add a property <property name="jpaAccessMode" value="field"/> to the <hibernate> tag, for example:
> <hibernate ...>
> <jdbcconfiguration .../>
> <property name="jpaAccessMode" value="field"/><!-- possible values are : field | property ; any other value defaults to property -->
> <hbm2java ...>
> </hibernate>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list