Liferay 钩子中自定义实体和用户实体之间的多对多关系

Liferay 钩子中自定义实体和用户实体之间的多对多关系,liferay,liferay-6,liferay-hook,liferay-service-builder,Liferay,Liferay 6,Liferay Hook,Liferay Service Builder,我正在使用服务构建器在liferay 6.1钩子中创建新实体。我想在我的一个自定义实体和门户的用户实体之间创建多对多关系。因此,我做了以下工作: <entity name="MyEntity" local-service="true" remote-service="true"> <column name="myEntityId" type="long" primary="true"></column> <column name="users" type

我正在使用服务构建器在liferay 6.1钩子中创建新实体。我想在我的一个自定义实体和门户的用户实体之间创建多对多关系。因此,我做了以下工作:

<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 com.liferay.portal.tools.servicebuilder.ServiceBuilder@28a6a735
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 com.liferay.portal.tools.servicebuilder.ServiceBuilder@28a6a735
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
有什么帮助吗


谢谢您

再创建一个实体来存储两个表的主键。通过这一点,您可以映射多对多关系表

表: 1.使用者 2.myentity 3.用户实体