2014-10-15 8 views
0

필자는 liferay 6.1 hook에서 새로운 엔티티를 생성하기 위해 서비스 빌더를 사용하고 있습니다. 내 사용자 정의 엔티티 중 하나와 포털의 사용자 엔티티 사이에 많은 관계를 작성하려고합니다. 그래서 내가 한 다음커스텀 엔티티와 사용자 엔티티 사이의 많은 관계가 후크

<entity name="MyEntity" local-service="true" remote-service="true"> 
<column name="myEntityId" type="long" primary="true"></column> 
<column name="users" type="Collection" entity="com.liferay.portal.User" mapping-table="Users_Garages"></column> 
<reference entity="User" package-path="com.liferay.portal"></reference> 
</entity> 

을하지만 내 서비스 빌더를 빌드 할 때 나는 다음과 같은 예외가 얻을 :

Method public java.util.List com.liferay.portal.tools.servicebuilder.ServiceBuilder.getMappingEntities(java.lang.String) throws java.io.IOException threw an exception when invoked on [email protected] 
The problematic instruction: 
---------- 
==> list serviceBuilder.getMappingEntities(column.mappingTable) as mapColumn [on line 260, column 41 in com/liferay/portal/tools/servicebuilder/dependencies/model_impl.ftl] 
---------- 
Java backtrace for programmers: 
---------- 
freemarker.template.TemplateModelException: Method public java.util.List com.liferay.portal.tools.servicebuilder.ServiceBuilder.getMappingEntities(java.lang.String) throws java.io.IOException threw an exception when invoked on [email protected] 
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130) 
at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93) 
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) 
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94) 
at freemarker.core.Environment.visit(Environment.java:221) 
at freemarker.core.MixedContent.accept(MixedContent.java:92) 
at freemarker.core.Environment.visit(Environment.java:221) 
at freemarker.core.Environment.visit(Environment.java:310) 
at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73) 
at freemarker.core.Environment.visit(Environment.java:221) 
at freemarker.core.MixedContent.accept(MixedContent.java:92) 
at freemarker.core.Environment.visit(Environment.java:221) 
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) 
at freemarker.core.Environment.visit(Environment.java:221) 
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179) 
at freemarker.core.Environment.visit(Environment.java:428) 
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) 
at freemarker.core.Environment.visit(Environment.java:221) 
at freemarker.core.MixedContent.accept(MixedContent.java:92) 
at freemarker.core.Environment.visit(Environment.java:221) 
at freemarker.core.Environment.process(Environment.java:199) 
at freemarker.template.Template.process(Template.java:237) 
at com.liferay.portal.freemarker.FreeMarkerUtil.process(FreeMarkerUtil.java:47) 
at com.liferay.portal.freemarker.FreeMarkerUtil.process(FreeMarkerUtil.java:37) 
at com.liferay.portal.tools.servicebuilder.ServiceBuilder._processTemplate(ServiceBuilder.java:4983) 
at com.liferay.portal.tools.servicebuilder.ServiceBuilder._createModelImpl(ServiceBuilder.java:2293) 
at com.liferay.portal.tools.servicebuilder.ServiceBuilder.<init>(ServiceBuilder.java:671) 
at com.liferay.portal.tools.servicebuilder.ServiceBuilder.main(ServiceBuilder.java:151) 
Caused by: java.lang.NullPointerException 
at com.liferay.portal.tools.servicebuilder.ServiceBuilder.getMappingEntities(ServiceBuilder.java:1048) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866) 
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106) 
... 27 more 

이것에 어떤 도움을?

감사합니다.

답변

0

두 테이블의 기본 키를 저장할 엔티티를 하나 더 만듭니다. 이를 통해 많은 관계 테이블을 맵핑 할 수 있습니다.

테이블 : 1. 사용자 2. myentity 3.user_myentity