I have this issue with hibernate. the scenario is that i'am remaking my project. my previous project is with JMS which runs smoothly with my POJOs. and now i am trying to recreate it using Apache Mina(socket programming) with Google's Gson.
I am having problem with lazy loading of my fields, because the project that uses JMS runs smooth with lazy loading but now i am trying to retrieve some value in the database but there is always a hibernate exceptiong stating that failed to lazily initialize a collection of role: class.field, no session or session was closed which i want to load lazily, i dont want to retrieve it everytime.
public class User {
    @Id
    @GeneratedValue
    @Column(name = "iduser")
    private Integer             iduser;
    @Column(name = "firstname")
    private String              firstname;
    @Column(name = "lastname")
    private String              lastname;
    //     this field causes the lazy loading exception
    @OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
    @BatchSize(size = 4)
    private Set<Transaction>    transaction;
}
and i am retrieving it in my DAO like this
public User findByUser(String username, String pass) {
        // TODO Auto-generated method stub
        try {
            User instance = (User) getSession().createCriteria(User.class)
                    .add(Restrictions.eq(USERNAME, username))
                    .add(Restrictions.eq(PASS, pass)).uniqueResult();
            return instance;
        } catch (RuntimeException re) {
            throw re;
        }
    }
the method where i call the service
public ModelAndView processSignin(User currentUser, BindingResult result,
            HttpServletRequest request) {
User user = service.signin(currentUser);
//i try to convert it to GSON but when i comment this line of code it works fine. but when gson tries to convert it to json string it seems that the annotations are being executed
System.out.println(gson.toJson(user));
}
signin method that calls the DAO class
public User signinDealer(User user) {
        // TODO Auto-generated method stub
        User currentUser = userDAO.signinUser(user);
        return currentUser;
    }
 
     
     
     
    