gpt4 book ai didi

hibernate - 如何使用 jackson 模块 hibernate 序列化延迟加载的实体?

转载 作者:行者123 更新时间:2023-12-02 22:33:51 27 4
gpt4 key购买 nike

我正在尝试使用 angularjs 和 springmvc 构建一个应用程序。我有两个类 Province 和 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
...............
}

在我的 Controller 中:

@RequestMapping("/userlist.json")
public @ResponseBody List<Provincia> getUserList(){
return this.provinciaService.loadAllProvincias();
}

我得到了这个错误: /* 找不到类 org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer 的序列化器和
没有发现创建 BeanSerializer 的属性(为了避免异常,禁用
SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (通过引用链: java.util.ArrayList[0]->admin.domain.Provincia["refComunidad"]-< admin.domain.Comunidad$$EnhancerByCGLIB$$68ea9e6f["hibernateLazyInitializer"]) */

我在github上读到关于jackson模块hibernate是解决这个问题的一个不错的选择
问题:https://github.com/FasterXML/jackson-module-hibernate 。我在我的 pom.xml 中包含了 jackson 模块 hibernate 依赖项

    <dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate4</artifactId>
<version>2.2.0</version>
</dependency>

但我不知道在哪里配置“Hibernate4Module.Feature.FORCE_LAZY_LOADING,true”。我尝试按照该页面 http://blog.pastelstudios.com/2012/03/12/spring-3-1-hibernate-4-jackson-module-hibernate/ 中的指示进行操作

但我遇到了同样的错误。

有人可以帮我举一个简单的例子吗?

最佳答案

你可以试试这个。这对我有帮助。

ObjectMapper mapper = new ObjectMapper();

Hibernate4Module hbm = new Hibernate4Module();
hbm.enable(Hibernate4Module.Feature.FORCE_LAZY_LOADING);

mapper.registerModule(hbm);
ObjectWriter w = mapper.writer();
String result = null;
try {
result = w.writeValueAsString(o);
} catch (JsonProcessingException e) {
e.printStackTrace();
}

关于hibernate - 如何使用 jackson 模块 hibernate 序列化延迟加载的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16833893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com