2014-10-15 3 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

Смежные вопросы