Paresseux Loadng erreur dans sérialiseur JSON

J'ai ce genre de @OneToOne Hibernate relation

public class Address implements Serializable {

    private String id;
    private String city;
    private String country;
//setter getters ommitted
}

public class Student implements Serializable {

    private String id;
    private String firstName;
    private String lastName;    
    private Address address;
}

adresse de l'Élément est mappé comme des PARESSEUX.

Maintenant, je veux aller chercher de l'utilisateur et de l'adresse à l'aide de

session.load(Student.class,id);

Dans mon daoService.

Puis-je la retourner comme JSON de mon contrôleur Spring MVC:

@RequestMapping(value="/getStudent.do",method=RequestMethod.POST)
    @ResponseBody
    public Student getStudent(@RequestParam("studentId") String id){
        Student student = daoService.getStudent(id);
        return student;
    }

Malheureusement, il ne fonctionne pas en raison de Paresseux clasees et j'échoue avec:

org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: com.vanilla.objects.Student_$$_javassist_1["address"]->com.vanilla.objects.Address_$$_javassist_0["handler"])
    at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62)

Je ne l'utilisation de OpenSessionInViewInterceptor et il fonctionne très bien.
Je comprends que je peux l'utilisateur left join requête HQL et de récupérer de l'étudiant et l'adresse de cette façon, et de résoudre le problème. Je comprends aussi que le changement de rapport AVIDES de les résoudre.

Mais comment puis-je sérialiser en JSON paresseux classes en utilisant la norme jackson message convertisseur de cause j'ai ajouté à mon fichier XML.

OriginalL'auteur danny.lesnik | 2011-06-08