Expression property.value.propertyIterator is undefined
Salut,
J'ai un souci dans mon projet de mapping avec hibernate-tools-3.2.0.beta9a.jar,
Tout est bon dans le projet, par ce que ca marchait avec MySql,
mais quand j'ai voulu le lancer sur DB2 ca donne l exception :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| **********
Expression property.value.propertyIterator is undefined on line 56, column 30 in hbm/id.hbm.ftl.
The problematic instruction:
----------
==> foreach keyproperty in property.value.propertyIterator [on line 56, column 5 in hbm/id.hbm.ftl]
in include "id.hbm.ftl" [on line 72, column 2 in hbm/persistentclass.hbm.ftl]
in include "persistentclass.hbm.ftl" [on line 34, column 1 in hbm/hibernate-mapping.hbm.ftl]
----------
Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression property.value.propertyIterator is undefined on line 56, column 30 in hbm/id.hbm.ftl.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.IfBlock.accept(IfBlock.java:82)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.include(Environment.java:1375)
at freemarker.core.Include.accept(Include.java:155)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.IfBlock.accept(IfBlock.java:82)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.IfBlock.accept(IfBlock.java:82)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.include(Environment.java:1375)
at freemarker.core.Include.accept(Include.java:155)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.process(Environment.java:176)
at freemarker.template.Template.process(Template.java:231)
at org.hibernate.tool.hbm2x.TemplateHelper.processTemplate(TemplateHelper.java:247)
at org.hibernate.tool.hbm2x.TemplateProducer.produceToString(TemplateProducer.java:67)
at org.hibernate.tool.hbm2x.TemplateProducer.produce(TemplateProducer.java:28)
at org.hibernate.tool.hbm2x.TemplateProducer.produce(TemplateProducer.java:97)
at org.hibernate.tool.hbm2x.GenericExporter.exportPOJO(GenericExporter.java:146)
at org.hibernate.tool.hbm2x.GenericExporter.exportPersistentClass(GenericExporter.java:135)
at org.hibernate.tool.hbm2x.GenericExporter$2.process(GenericExporter.java:41)
at org.hibernate.tool.hbm2x.GenericExporter.doStart(GenericExporter.java:126)
at org.hibernate.tool.hbm2x.HibernateMappingExporter.doStart(HibernateMappingExporter.java:34)
at org.hibernate.tool.hbm2x.AbstractExporter.start(AbstractExporter.java:95)
at org.hibernate.eclipse.launch.CodeGenerationLaunchDelegate$1.execute(CodeGenerationLaunchDelegate.java:257)
at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:65)
at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:89)
at org.hibernate.eclipse.launch.CodeGenerationLaunchDelegate.runExporters(CodeGenerationLaunchDelegate.java:228)
at org.hibernate.eclipse.launch.CodeGenerationLaunchDelegate.launch(CodeGenerationLaunchDelegate.java:130)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:639)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:565)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:754)
at org.eclipse.debug.internal.ui.DebugUIPlugin$6.run(DebugUIPlugin.java:944)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58) |
*************
Si quelqu'un a une solution pour ca
Merci d'avance pour votre aide
Expression property.value.propertyIterator is undefined
Le problème se pose dans le fichier hbm/id.hbm.ftl au niveau
du jar : hibernate-tools-3.2.0.beta9a.jar dont le contenue est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
<#if embeddedid?exists>
<composite-id>
<#foreach keyproperty in embeddedid.propertyIterator>
<#if !c2h.isManyToOne(keyproperty)>
<key-property name="${keyproperty.name}" type="${keyproperty.value.typeName}">
<#foreach column in keyproperty.columnIterator>
<#include "pkcolumn.hbm.ftl">
</#foreach>
</key-property>
<#else>
<key-many-to-one name="${keyproperty.name}" class="${c2j.getJavaTypeName(keyproperty, false)}">
<#foreach column in keyproperty.columnIterator>
<#include "pkcolumn.hbm.ftl">
</#foreach>
</key-many-to-one>
</#if>
</#foreach>
</composite-id>
<#elseif !c2j.isComponent(property)>
<id
name="${property.name}"
type="${property.value.typeName}"
<#if c2h.isUnsavedValue(property)>
unsaved-value="${c2h.getUnsavedValue(property)}"
</#if>
<#if !property.basicPropertyAccessor>
access="${property.propertyAccessorName}"
</#if>
>
<#assign metaattributable=property>
<#include "meta.hbm.ftl">
<#foreach column in property.columnIterator>
<#include "pkcolumn.hbm.ftl">
</#foreach>
<#if !c2h.isIdentifierGeneratorProperties(property)>
<generator class="${property.value.identifierGeneratorStrategy}" />
<#else>
<generator class="${property.value.identifierGeneratorStrategy}">
<#assign parameters = c2h.getIdentifierGeneratorProperties(property)>
<#foreach paramkey in c2h.getFilteredIdentifierGeneratorKeySet(property)>
<param name="${paramkey}">${parameters.get(paramkey)}</param>
</#foreach>
</generator>
</#if>
</id>
<#else>
<composite-id
name="${property.name}"
class="${property.value.getComponentClassName()}"
<#if c2h.isUnsavedValue(property)>
unsaved-value="${c2h.getUnsavedValue(property)}"
</#if>
<#if !property.basicPropertyAccessor>
access="${property.propertyAccessorName}"
</#if>
>
<#foreach keyproperty in c2h.getProperties(property.value)>
<#if !c2h.isManyToOne(keyproperty)>
<key-property name="${keyproperty.name}" type="${keyproperty.value.typeName}">
<#foreach column in keyproperty.columnIterator>
<#include "pkcolumn.hbm.ftl">
</#foreach>
</key-property>
<#else>
<key-many-to-one name="${keyproperty.name}" class="${c2j.getJavaTypeName(keyproperty, false)}">
<#foreach column in keyproperty.columnIterator>
<#include "pkcolumn.hbm.ftl">
</#foreach>
</key-many-to-one>
</#if>
</#foreach>
</composite-id>
</#if> |
Je sais bien que MySql et DB2 ont des structures totalement différentes,
mais je pensais que Hibernate gère ca ;
Merci pour votre aide