java - Jackson hibernate 模块 - 渴望特定请求

标签 java spring hibernate spring-mvc jackson

假设我有一个关系 Customer 1 -> n Servers,声明为 FetchType.LAZY。对于当我显示客户列表时的情况,我不想带相关实体,因此响应如下

[{
  "name": "WooHoo",
  "servers": null
},
...
]

完全没问题,但是当我想向特定客户展示时,我想进行一次急切的调用并将其序列化为 json,例如

{
  "name": "WooHoo",
  "servers": [{
    "ip": "127.0.0.1",
    "username": "admin"
  },
  ...
  ]
}

这是我的消息转换器的 spring mvc 配置。

public MappingJackson2HttpMessageConverter jacksonMessageConverter(Hibernate5Module module){
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();

        ObjectMapper mapper = new ObjectMapper();
        mapper.registerModule(module);

        messageConverter.setObjectMapper(mapper);
        return messageConverter;

    }

    @Bean
    public Hibernate5Module hibernate5Module() {
        return new Hibernate5Module();
    }

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(jacksonMessageConverter(hibernate5Module()));
        super.configureMessageConverters(converters);
    }

如何针对特定请求强制热切调用 + 相关实体序列化(直到第一级关系)?

最佳答案

我建议使用 hql 来加载单个客户。

来自Chapter 14. HQL: The Hibernate Query Language :

A "fetch" join allows associations or collections of values to be initialized along with their parent objects using a single select. This is particularly useful in the case of a collection. It effectively overrides the outer join and lazy declarations of the mapping file for associations and collections. See Section 19.1, “Fetching strategies” for more information.

关于java - Jackson hibernate 模块 - 渴望特定请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41220981/

相关文章:

java - H2 数据库从脚本加载数据

java - 错误 - 错误的请求;检查错误消息以获取详细信息

java - org.hibernate.exception.GenericJDBCException : Cannot open connection

java - hibernate 无法获得正确的结果集

java - java中如何支持jedis集群

java - 如何使用jpa中的选择查询来检索所有数据?

Java 8 在使用时缺少参数::

java - Hibernate相关对象未水合

java - org.apache.commons.httpclient.HttpClient 卡在请求上

Java : How to create map using the class attributes?