Foren
How to create one to many relationship in Liferay 6.2
saleem khan, geändert vor 9 Jahren.
How to create one to many relationship in Liferay 6.2
Junior Member Beiträge: 71 Beitrittsdatum: 16.11.13 Neueste Beiträge
Hi.....
I am new to liferay,
Can any tell how to create one to many relation ship in liferay 6.2
i thought of using mapping-key but as the mapping key is removed, i dont no how to create a one to many relationship.
have tried the following code added in service.xml but Methods and related to that code are not getting generated.
<!-- Relationship -->
<column name="lmsBorrowings" type="Collection" entity="LMSBorrowing" />
can any pleas suggest the solution
thansk.
I am new to liferay,
Can any tell how to create one to many relation ship in liferay 6.2
i thought of using mapping-key but as the mapping key is removed, i dont no how to create a one to many relationship.
have tried the following code added in service.xml but Methods and related to that code are not getting generated.
<!-- Relationship -->
<column name="lmsBorrowings" type="Collection" entity="LMSBorrowing" />
can any pleas suggest the solution
thansk.
Meera Prince, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2
Liferay Legend Beiträge: 1111 Beitrittsdatum: 08.02.11 Neueste Beiträge
Hi
Have a look into following link it may help you..
http://www.liferaysavvy.com/2014/01/liferay-service-builder-many-to-many_12.html
Regards,
Meera Prince
Have a look into following link it may help you..
http://www.liferaysavvy.com/2014/01/liferay-service-builder-many-to-many_12.html
Regards,
Meera Prince
saleem khan, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2
Junior Member Beiträge: 71 Beitrittsdatum: 16.11.13 Neueste Beiträge
I need how to create one to many relationship pleas tell how to do it liferay 6.2
saleem khan, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2
Junior Member Beiträge: 71 Beitrittsdatum: 16.11.13 Neueste Beiträge
Have tried above method of yours in the website but getting an exception pleas tell me whats wrong below is the code of service.xml
and getting the following exception while building the service layer.
<!--?xml version="1.0" encoding="UTF-8"?-->
<service-builder package-path="com.slayer">
<author>saleem</author>
<namespace>LMS</namespace>
<entity name="LMSBook" local-service="true" remote-service="false">
<!-- PK fields -->
<column name="bookId" type="long" primary="true" id-type="increment" />
<!-- UI fields -->
<column name="bookTitle" type="String" />
<column name="author" type="String" />
<!-- Relationship -->
<column name="lmsBorrowings" type="Collection" entity="LMSBorrowing" mapping-table="bookId" />
<!-- Here by default mapping-key is the primary key
so no need of using mapping-key attribute and also support for
mapping-key attribute has been removed in liferay6.2 see DTD for more details-->
<!-- Audit fields -->
<column name="dateAdded" type="Date" />
<column name="modifiedDate" type="Date" />
<order by="desc">
<order-column name="modifiedDate"></order-column>
</order>
<finder return-type="Collection" name="BookTitle">
<finder-column name="bookTitle" />
</finder>
<finder return-type="LMSBook" name="BookTitle_Author">
<finder-column name="bookTitle" />
<finder-column name="author" />
</finder>
<reference package-path="com.liferay.portal" entity="Image" />
</entity>
<entity name="LMSBorrowing" local-service="true" remote-service="false">
<!-- PK fields -->
<column name="borrowingId" type="long" primary="true" id-type="increment" />
<!-- FK fields -->
<column name="bookId" type="long" />
<column name="memberId" type="long" />
<!-- Audit fields -->
<column name="dateBorrowed" type="Date" />
<column name="dateReturned" type="Date" />
<finder return-type="Collection" name="BookId">
<finder-column name="bookId"></finder-column>
</finder>
</entity>
</service-builder>
and getting the following exception while building the service layer.
[Console output redirected to file:E:\Liferay\LIFERAY\.metadata\.plugins\com.liferay.ide.sdk.core\sdk.log]
Buildfile: E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\build.xml
build-service:
[jar] Building MANIFEST-only jar: E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\build-service-classpath.jar
[delete] Deleting: E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\build-service-classpath.jar.manifest
[delete] Deleting: E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\build-service-classpath.jar
[echo] Loading jar:file:/E:/Liferay/LIFERAY/liferay-portal-6.2-ce-ga2/tomcat-7.0.42/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties
[echo] Loading jar:file:/E:/Liferay/LIFERAY/liferay-portal-6.2-ce-ga2/tomcat-7.0.42/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties
[echo] Loading jar:file:/E:/Liferay/LIFERAY/liferay-portal-6.2-ce-ga2/tomcat-7.0.42/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/com/liferay/portal/tools/dependencies/portal-tools.properties
[echo] Building LMSBook
[echo] Writing E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\docroot\WEB-INF\src\com\slayer\service\persistence\LMSBookPersistenceImpl.java
[echo] Writing E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\docroot\WEB-INF\service\com\slayer\service\persistence\LMSBookPersistence.java
[echo] Writing E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\docroot\WEB-INF\service\com\slayer\service\persistence\LMSBookUtil.java
[echo] 10:43:09,300 ERROR [main][runtime:96] Template processing error: "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@4d4a3cb9"
[echo] 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@4d4a3cb9
[echo] The problematic instruction:
[echo] ----------
[echo] ==> list serviceBuilder.getMappingEntities(column.mappingTable) as mapColumn [on line 280, column 41 in com/liferay/portal/tools/servicebuilder/dependencies/model_impl.ftl]
[echo] ----------
[echo] Java backtrace for programmers:
[echo] ----------
[echo] 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@4d4a3cb9
[echo] at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130)
[echo] at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93)
[echo] at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
[echo] at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.MixedContent.accept(MixedContent.java:92)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.Environment.visit(Environment.java:310)
[echo] at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.MixedContent.accept(MixedContent.java:92)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179)
[echo] at freemarker.core.Environment.visit(Environment.java:428)
[echo] at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.MixedContent.accept(MixedContent.java:92)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.Environment.process(Environment.java:199)
[echo] at freemarker.template.Template.process(Template.java:237)
[echo] at com.liferay.portal.freemarker.FreeMarkerUtil.process(FreeMarkerUtil.java:47)
[echo] at com.liferay.portal.freemarker.FreeMarkerUtil.process(FreeMarkerUtil.java:37)
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder._processTemplate(ServiceBuilder.java:4976)
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder._createModelImpl(ServiceBuilder.java:2346)
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder.<init>(ServiceBuilder.java:750)
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder.main(ServiceBuilder.java:228)
[echo] Caused by: java.lang.NullPointerException
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder.getMappingEntities(ServiceBuilder.java:1123)
[echo] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[echo] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[echo] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[echo] at java.lang.reflect.Method.invoke(Unknown Source)
[echo] at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866)
[echo] at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106)
[echo] ... 27 more
[echo] 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@4d4a3cb9
[echo] The problematic instruction:
[echo] ----------
[echo] ==> list serviceBuilder.getMappingEntities(column.mappingTable) as mapColumn [on line 280, column 41 in com/liferay/portal/tools/servicebuilder/dependencies/model_impl.ftl]
[echo] ----------
[echo] Java backtrace for programmers:
[echo] ----------
[echo] 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@4d4a3cb9
[echo] at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130)
[echo] at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93)
[echo] at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
[echo] at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.MixedContent.accept(MixedContent.java:92)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.Environment.visit(Environment.java:310)
[echo] at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.MixedContent.accept(MixedContent.java:92)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179)
[echo] at freemarker.core.Environment.visit(Environment.java:428)
[echo] at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.MixedContent.accept(MixedContent.java:92)
[echo] at freemarker.core.Environment.visit(Environment.java:221)
[echo] at freemarker.core.Environment.process(Environment.java:199)
[echo] at freemarker.template.Template.process(Template.java:237)
[echo] at com.liferay.portal.freemarker.FreeMarkerUtil.process(FreeMarkerUtil.java:47)
[echo] at com.liferay.portal.freemarker.FreeMarkerUtil.process(FreeMarkerUtil.java:37)
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder._processTemplate(ServiceBuilder.java:4976)
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder._createModelImpl(ServiceBuilder.java:2346)
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder.<init>(ServiceBuilder.java:750)
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder.main(ServiceBuilder.java:228)
[echo] Caused by: java.lang.NullPointerException
[echo] at com.liferay.portal.tools.servicebuilder.ServiceBuilder.getMappingEntities(ServiceBuilder.java:1123)
[echo] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[echo] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[echo] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[echo] at java.lang.reflect.Method.invoke(Unknown Source)
[echo] at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866)
[echo] at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106)
[echo] ... 27 more
[mkdir] Created dir: E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\docroot\WEB-INF\service-classes
[copy] Copied 6 empty directories to 6 empty directories under E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\docroot\WEB-INF\service-classes
[javac] Compiling 30 source files to E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\docroot\WEB-INF\service-classes
[zip] Building zip: E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\docroot\WEB-INF\lib\library-portlet-service.jar
[delete] Deleting directory E:\Liferay\LIFERAY\liferay-plugins-sdk-6.2\portlets\library-portlet\docroot\WEB-INF\service-classes
BUILD SUCCESSFUL
Total time: 26 seconds
</init></init>
Meera Prince, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2
Liferay Legend Beiträge: 1111 Beitrittsdatum: 08.02.11 Neueste Beiträge
Hi
Refer following thread..
Use Mapping Key. or you can assume Many to Many in one direction then it will be one to many its just my assumption..
Mapping key was deprecated in liferay 6.2
https://www.liferay.com/community/forums/-/message_boards/message/34688498
Have look into following service.xml file of portal have a look into Group entity..
Regards,
Meera Prince
Refer following thread..
Use Mapping Key. or you can assume Many to Many in one direction then it will be one to many its just my assumption..
Mapping key was deprecated in liferay 6.2
https://www.liferay.com/community/forums/-/message_boards/message/34688498
Have look into following service.xml file of portal have a look into Group entity..
Regards,
Meera Prince
saleem khan, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2
Junior Member Beiträge: 71 Beitrittsdatum: 16.11.13 Neueste Beiträge
Thanks for replying i have followed to your website and done the necessary editing to my code but get an exception please check the above code and exception which i have update.
saleem khan, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2 (Antwort)
Junior Member Beiträge: 71 Beitrittsdatum: 16.11.13 Neueste Beiträge
i have solved the above exception by giving the package path to the entity and doesnt give any problem but their is new problem now
first consider the code
now the problem is that its not creating the table now,after service building their should be a new table(lms_bookId) but the problem is that the table i not getting created.
please give the solution for this.
thanks
first consider the code
<column name="lmsBorrowings" type="Collection" entity="com.slayer.LMSBorrowing" mapping-table="bookId" />
now the problem is that its not creating the table now,after service building their should be a new table(lms_bookId) but the problem is that the table i not getting created.
please give the solution for this.
thanks
Subhash Pavuskar, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2 (Antwort)
Regular Member Beiträge: 234 Beitrittsdatum: 13.03.12 Neueste Beiträge
Hi,
Delete a row from the servicecomponent table and try fresh service build.
Delete a row from the servicecomponent table and try fresh service build.
saleem khan, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2
Junior Member Beiträge: 71 Beitrittsdatum: 16.11.13 Neueste Beiträge
thank for replying sir will try out what u said and will update
saleem khan, geändert vor 9 Jahren.
RE: How to create one to many relationship in Liferay 6.2
Junior Member Beiträge: 71 Beitrittsdatum: 16.11.13 Neueste Beiträge
sir, sir got it working and ur method worked thanks for ur help