Monday, August 4, 2014

Re: GWT, Hibernate and a many to many relationship

See https://bitbucket.org/gardellajuanpablo/gwt-sample/wiki/Home 

There you have a Hibernate Filter that solves your problem. I suggest don't use Gilead or these solutions, it's better use DTOs. It's common using the model directly in the pages for example with JSF, but it's not a good practice in GWT.

Juan


2014-08-04 12:39 GMT-03:00 Moutellou <moutellou@gmail.com>:
You can also give a try to RequestFactory, which solves the client/server object serialization issue.



On Wednesday, July 30, 2014 5:07:18 AM UTC-4, Peter S. wrote:
Hey all,

after searching the complete web for a solution and didn't find one, I will try to share my problem with you ;)..

Well I have the famous failure with GWT and Hibernate:

java.lang.RuntimeException: com.google.gwt.user.client.rpc.SerializationException: Type 'org.hibernate.collection.PersistentSet' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = []

I have a hbm.xml file where Hibernate generates an Entity.

<class abstract="false"
       
name="com.egrima.webinfotools.common.entity.PointOfInterest"
       
table="witpois">
       
<meta attribute="extends">net.sf.gilead.pojo.gwt.LightEntity</meta>  <!-- This was a try but also didn't work. so that line is not implemented in general -->
       
<meta attribute="implements">com.egrima.webinfotools.common.entity.BasisEntity</meta>
       
<id column="ID" name="id" type="java.lang.Long">
           
<generator class="sequence">
               
<param name="sequence">SEQ_WITPOIS</param>
           
</generator>
       
</id>

       
<property column="ZALTKN" generated="never" lazy="false"
           
name="zaltkn" length="6" type="java.lang.String" />
       
<property column="NAME" generated="never" lazy="false" name="name"
           
length="255" type="java.lang.String" />
       
<property column="ADDRESS" generated="never" lazy="false"
           
name="address" length="512" type="java.lang.String" />
       
<property column="LONGITUDE" generated="never" lazy="false"
           
name="longitude" type="java.lang.Double" />
       
<property column="LATITUDE" generated="never" lazy="false"
           
name="latitude" type="java.lang.Double" />
       
<property column="ANL_DAT_ZEIT" generated="never" lazy="false"
           
name="createdDate" type="java.util.Date" />
       
<property column="AEN_DAT_ZEIT" generated="never" lazy="false"
           
name="changedDate" type="java.util.Date" />
       
<property column="TERM" generated="never" name="hostname"
           
length="12" type="java.lang.String" />
       
<property column="BEN" generated="never" name="username"
           
length="8" type="java.lang.String" />

       
<many-to-one name="category" foreign-key="fk_poi_category" cascade="all"
           
column="category_id" lazy="false"    class="com.egrima.webinfotools.common.entity.generated.PointOfInterestCategory" />
           
       
<one-to-one name="poiNameTranslation" lazy="false" cascade="all"  foreign-key="fk_witpoi_translation" class="com.egrima.webinfotools.common.entity.generated.PointOfInterestTranslation"/>
           
       
<set name="attributes" inverse="true" table="witpoi_attribute" lazy="false" cascade="all" fetch="select">
         
<key column="POI_ID"/>
           
<many-to-many  class="com.egrima.webinfotools.common.entity.generated.PointOfInterestAttribute" column="ATTRIBUTE_ID"   fetch="join"/>
       
</set>    
       
   
</class>



The generated Class looks like this:


package com.egrima.webinfotools.common.entity;
// Generated 30.07.2014 10:56:07 by Hibernate Tools 3.2.2.GA


import com.egrima.webinfotools.common.entity.generated.PointOfInterestAttribute;
import com.egrima.webinfotools.common.entity.generated.PointOfInterestCategory;
import com.egrima.webinfotools.common.entity.generated.PointOfInterestTranslation;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * PointOfInterest generated by hbm2java
 */

public class PointOfInterest  implements com.egrima.webinfotools.common.entity.BasisEntity,java.io.Serializable {


   
private static final long serialVersionUID = 42L;


     
private Long id;
     
private String zaltkn;
     
private String name;
     
private String address;
     
private Double longitude;
     
<span style="color: #008;" class="styl
...

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment