On Thu, Nov 6, 2008 at 7:28 AM, mwaynewalter
<[EMAIL PROTECTED]> wrote:
>
> Matt,
>
> Thanks but I found a fix.  FYI, the error below says this is the offending
> line.
>
> ${pojo.generateJoinColumnsAnnotation(property)} [on line 11, column 15 in
>
> If works beautifully if you add a parameter to that method so it looks like
> this in appfuse/model/Ejb3PropertyGetAnnotation.ftl:
>
> ${pojo.generateJoinColumnsAnnotation(property,cfg)}
>
> In the newer version of hibernate tools, that method needs the configuration
> as the second argument.
>
> If you simply put ",cfg" there, it will fix it.
>
> Wow. It took me about 4 hours to figure this out.

Thanks for taking the time to figure this out. Can you please enter an
issue in JIRA so we can solve it for the next release?

http://issues.appfuse.org/browse/APF

>
> Please any advice? Do people really use this gen-model tool heavily?  I see
> a number of "to do" comments in the code. Is there a more powerful, better
> recommended reverse engineering tool for JPA/ hibernate?

The gen-model plugin re-uses a lot of what the Hibernate3 Maven Plugin
does, but adds some AppFuse-specific tweaks.

Matt

>
> The appfuse:gen seems to work better.
>
> Wayne
>
>
> mraible wrote:
>>
>> On Wed, Nov 5, 2008 at 2:34 PM, mwaynewalter
>> <[EMAIL PROTECTED]> wrote:
>>>
>>> With appfuse 2.0.2 for struts basic and hibernate, I get the error below
>>> (with stack trace) when running appfuse:gen-model  This is an Oracle 10g
>>> database.
>>>
>>> appfuse:gen-model works like a charm on any individual table or tables
>>> without inter-dependencies.
>>>
>>> But as soon as you include any two tables with a foreign key
>>> relationship,
>>> this error happens.
>>
>> We are aware of this issue and don't have a solution currently.
>>
>> Matt
>>
>>>
>>> hibernate.reveng.xml is setup as recommended in JIRA and the Wiki for
>>> Oracle
>>> already.
>>>
>>> The Oracle foreign key relationship looks like this (an excerpt)...
>>>
>>> "INVESTIGATINGAGENT" NUMBER(8,0),
>>> FOREIGN KEY ("INVESTIGATINGAGENT")
>>>          REFERENCES "COREDBA"."EMPLOYEE" ("EMPLOYEEID") ENABLE
>>>
>>> And the employeeid looks like this:
>>>
>>> "EMPLOYEEID" NUMBER(8,0) NOT NULL ENABLE,
>>>
>>> I scoured the internet in a vain attempt to find some guidance already
>>> out
>>> there.
>>> Please help.
>>>
>>> 16:20:42,257 ERROR freemarker.runtime -
>>> Method public java.lang.String
>>> org.hibernate.tool.hbm2x.pojo.EntityPOJOClass.gen
>>> erateJoinColumnsAnnotation(org.hibernate.mapping.Property,org.hibernate.cfg.Conf
>>> iguration) threw an exception when invoked on
>>> org.hibernate.tool.hbm2x.pojo.Enti
>>> tyPOJOClass(gov.virginia.abc.model.License)
>>> The problematic instruction:
>>> ----------
>>>  in include "Ejb3PropertyGetAnnotation.ftl" [on line 1, column 1 in
>>> appfuse/mode
>>> l/GetPropertyAnnotation.ftl]
>>>  in include "GetPropertyAnnotation.ftl" [on line 9, column 5 in
>>> appfuse/model/Po
>>> joPropertyAccessors.ftl]
>>>  in include "PojoPropertyAccessors.ftl" [on line 9, column 1 in
>>> appfuse/model/Po
>>> jo.ftl]
>>> ----------
>>>
>>> Java backtrace for programmers:
>>> ----------
>>> freemarker.template.TemplateModelException: Method public
>>> java.lang.String
>>> org.h
>>> ibernate.tool.hbm2x.pojo.EntityPOJOClass.generateJoinColumnsAnnotation(org.hiber
>>> nate.mapping.Property,org.hibernate.cfg.Configuration) threw an exception
>>> when i
>>> nvoked on
>>> org.hibernate.tool.hbm2x.pojo.EntityPOJOClass(gov.virginia.abc.model.L
>>> icense)
>>>        at
>>> freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:136)
>>>        at
>>> freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93)
>>>        at
>>> freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
>>>        at freemarker.core.Expression.getStringValue(Expression.java:93)
>>>        at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
>>>        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.MixedContent.accept(MixedContent.java:92)
>>>        at freemarker.core.Environment.visit(Environment.java:196)
>>>        at
>>> freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
>>>        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.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.ConditionalBlock.accept(ConditionalBlock.java:79)
>>>        at freemarker.core.Environment.visit(Environment.java:196)
>>>        at
>>> freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160)
>>>        at freemarker.core.Environment.visit(Environment.java:351)
>>>        at freemarker.core.IteratorBlock.accept(IteratorBlock.java:95)
>>>        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.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.visit(Environment.java:233)
>>>        at freemarker.core.BlockAssignment.accept(BlockAssignment.java:83)
>>>        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:232)
>>>        at
>>> org.hibernate.tool.hbm2x.TemplateHelper.processTemplate(TemplateHelper.java:
>>> 251)
>>>        at
>>> org.hibernate.tool.hbm2x.TemplateProducer.produceToString(TemplateProducer.j
>>> ava: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(GenericExport
>>> er.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.AbstractExporter.start(AbstractExporter.java:95)
>>>        at
>>> org.appfuse.mojo.HibernateExporterMojo.doExecute(HibernateExporterMojo.java:
>>> 228)
>>>        at
>>> org.appfuse.mojo.exporter.ModelGeneratorMojo.execute(ModelGeneratorMojo.java
>>> :183)
>>>        at
>>> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManage
>>> r.java:579)
>>>        at
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFail
>>> ures(DefaultLifecycleExecutor.java:498)
>>>        at
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForPro
>>> ject(DefaultLifecycleExecutor.java:265)
>>>        at
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(Defa
>>> ultLifecycleExecutor.java:191)
>>>        at
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycle
>>> Executor.java:149)
>>>        at
>>> org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)
>>>        at
>>> org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:3
>>> 04)
>>>        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)
>>>        at
>>> org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.ja
>>> va:904)
>>>        at
>>> org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbe
>>> dder.java:304)
>>>        at
>>> org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)
>>>        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)
>>>        at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)
>>>        at org.apache.maven.cli.MavenCli.main(MavenCli.java:52)
>>> Caused by: java.lang.IllegalArgumentException: wrong number of arguments
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
>>> )
>>>        at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
>>> .java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:585)
>>>        at
>>> freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:616)
>>>        at
>>> freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:113)
>>>        ... 70 more
>>> Exception in thread "main" org.hibernate.tool.hbm2x.ExporterException:
>>> Error
>>> whi
>>> le processing template appfuse/model/Pojo.ftl
>>>        at
>>> org.hibernate.tool.hbm2x.TemplateHelper.processTemplate(TemplateHelper.java:
>>> 257)
>>>        at
>>> org.hibernate.tool.hbm2x.TemplateProducer.produceToString(TemplateProducer.j
>>> ava: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(GenericExport
>>> er.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.AbstractExporter.start(AbstractExporter.java:95)
>>>        at
>>> org.appfuse.mojo.HibernateExporterMojo.doExecute(HibernateExporterMojo.java:
>>> 228)
>>>        at
>>> org.appfuse.mojo.exporter.ModelGeneratorMojo.execute(ModelGeneratorMojo.java
>>> :183)
>>>        at
>>> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManage
>>> r.java:579)
>>>        at
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFail
>>> ures(DefaultLifecycleExecutor.java:498)
>>>        at
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForPro
>>> ject(DefaultLifecycleExecutor.java:265)
>>>        at
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(Defa
>>> ultLifecycleExecutor.java:191)
>>>        at
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycle
>>> Executor.java:149)
>>>        at
>>> org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)
>>>        at
>>> org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:3
>>> 04)
>>>        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)
>>>        at
>>> org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.ja
>>> va:904)
>>>        at
>>> org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbe
>>> dder.java:304)
>>>        at
>>> org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)
>>>        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)
>>>        at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)
>>>        at org.apache.maven.cli.MavenCli.main(MavenCli.java:52)
>>> Caused by: freemarker.template.TemplateModelException: Method public
>>> java.lang.S
>>> tring
>>> org.hibernate.tool.hbm2x.pojo.EntityPOJOClass.generateJoinColumnsAnnotatio
>>> n(org.hibernate.mapping.Property,org.hibernate.cfg.Configuration) threw
>>> an
>>> excep
>>> tion when invoked on
>>> org.hibernate.tool.hbm2x.pojo.EntityPOJOClass(gov.virginia.
>>> abc.model.License)
>>>        at
>>> freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:136)
>>>        at
>>> freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93)
>>>        at
>>> freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
>>>        at freemarker.core.Expression.getStringValue(Expression.java:93)
>>>        at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
>>>        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.MixedContent.accept(MixedContent.java:92)
>>>        at freemarker.core.Environment.visit(Environment.java:196)
>>>        at
>>> freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
>>>        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.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.ConditionalBlock.accept(ConditionalBlock.java:79)
>>>        at freemarker.core.Environment.visit(Environment.java:196)
>>>        at
>>> freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160)
>>>        at freemarker.core.Environment.visit(Environment.java:351)
>>>        at freemarker.core.IteratorBlock.accept(IteratorBlock.java:95)
>>>        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.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.visit(Environment.java:233)
>>>        at freemarker.core.BlockAssignment.accept(BlockAssignment.java:83)
>>>        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:232)
>>>        at
>>> org.hibernate.tool.hbm2x.TemplateHelper.processTemplate(TemplateHelper.java:
>>> 251)
>>>        ... 24 more
>>> Caused by: java.lang.IllegalArgumentException: wrong number of arguments
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
>>> )
>>>        at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
>>> .java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:585)
>>>        at
>>> freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:616)
>>>        at
>>> freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:113)
>>>        ... 70 more
>>> --
>>> View this message in context:
>>> http://www.nabble.com/appfuse-2.0.2-gen-model-and-join-columns--tp20349030s2369p20349030.html
>>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>
> --
> View this message in context: 
> http://www.nabble.com/appfuse-2.0.2-gen-model-and-join-columns--tp20349030s2369p20362066.html
> Sent from the AppFuse - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to