Wie serialisieren lazy geladen Entitäten mit jackson Modul überwintern?
Ich versuche, eine Anwendung zu erstellen mit angularjs und springmvc.Ich habe zwei Klassen, die Provinz und der Comunidad. :
@Entity(name="Provincia")
@Table(name="T_PROVINCIA")
public class Provincia implements Serializable{
private String idProvincia;
private String nombre;
private Comunidad refComunidad;
public Provincia() {
}
@Id
@TableGenerator(name="provinciaGen",
table="T_GENERATOR",
pkColumnName="ID_GENERATOR",
pkColumnValue="ID_PROVINCIA",
valueColumnName="ID_VALUE")
@GeneratedValue(generator="provinciaGen",strategy=GenerationType.TABLE)
@Column(name="ID_PROVINCIA")
public String getIdProvincia() {
return idProvincia;
}
@Column(name="NOMBRE")
public String getNombre() {
return nombre;
}
@ManyToOne(targetEntity=Comunidad.class, fetch=FetchType.LAZY)
@JoinColumn(name="ID_COMUNIDAD")
public Comunidad getRefComunidad() {
return refComunidad;
}
setters
.....
.....
}
@Entity(name="Comunidad")
@Table(name="T_COMUNIDAD")
public class Comunidad implements Serializable{
@Id
@TableGenerator(name="comunidadGen",
table="T_GENERATOR",
pkColumnName="ID_GENERATOR",
pkColumnValue="ID_COMUNIDAD",
valueColumnName="ID_VALUE")
@GeneratedValue(generator="comunidadGen",strategy=GenerationType.TABLE)
@Column(name="ID_COMUNIDAD")
private String idComunidad;
@Column(name="NOMBRE")
private String nombre;
@Column(name="SHORTNAME")
private String shortName;
public Comunidad() {
}
getters and setters
...............
}
In meinem controller:
@RequestMapping("/userlist.json")
public @ResponseBody List<Provincia> getUserList(){
return this.provinciaService.loadAllProvincias();
}
Und bekomme ich diesen Fehler:
/*
Keine serializer fand für die Klasse org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer und
keine Eigenschaften, entdeckt zu erstellen BeanSerializer (um zu vermeiden, Ausnahme, deaktivieren
SerializationConfig.Funktion.FAIL_ON_EMPTY_BEANS) ) (durch Verweis Kette:
java.util.ArrayList[0]->admin.domain.Provincia["refComunidad"]-<
admin.domain.Comunidad$$EnhancerByCGLIB$$68ea9e6f["hibernateLazyInitializer"])
*/
Ich gelesen habe auf github über jackson Modul hibernate ist eine gute Wahl, um das zu lösen
problem : https://github.com/FasterXML/jackson-module-hibernate.
Ich habe die jackson-Modul hibernate-Abhängigkeit in meinem pom.xml
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate4</artifactId>
<version>2.2.0</version>
</dependency>
Aber ich weiß nicht wo konfigurieren Sie die "Hibernate4Module.Funktion.FORCE_LAZY_LOADING,wahr".
Ich versuche, Folgen Sie den Indikationen von dieser Seite http://blog.pastelstudios.com/2012/03/12/spring-3-1-hibernate-4-jackson-module-hibernate/
aber ich erhalten die gleiche Fehlermeldung.
Gibt es jemanden, der mir helfen kann mit einem einfachen Beispiel bitte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, diese. Es hilft mir.
Dies ist, wie ich es geschafft habe, bin ich mit RestEASY auf JBoss WildFly
Ich habe genaue das problem und hier meine Lösung.
p/s: gültig Nur für
1.9.x org.codehaus.jackson.map.ObjectMapper
und nicht 2.x Jackson.ObjectMapper MAPPER = new ObjectMapper();
MAPPER.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
Das heißt, keine dieser Antworten schien zu helfen, mein ähnliches problem.Ich weiß ist ein bisschen spät, aber hier ist die Lösung für Ihr problem: Vermeiden Jackson Serialisierung auf nicht geholt faul Objekte