我有三个bean类:UsersUserDetailAuth,我在服务类中做

@Override
public void addUser(UserDetail userDetail) {
  Users users=new Users();
  users.setUsername(userDetail.getUsername());
  users.setEnabled(userDetail.isEnabled());
  users.setAgentId(userDetail.getAgentId());

  Auth auth = new Auth();
  auth.setUsername(userDetail.getUsername());
  auth.setAuthority(userDetail.getAuthority());

  userDetailDao.addUser(userDetail, users, auth);
}


我想将所有这些对象保存在Dao类中

  @Override
public void addUser(UserDetail userDetail,Users users,Auth auth)
{
  // TODO Auto-generated method stub
  getSession().saveOrUpdate(userDetail);
  //Here i also want to save 'users' and 'auth' in same transaction..
  getSession().flush();
}


可以解决吗,可以尝试...谢谢。

最佳答案

如果将UserDetail类重构为如下形式:

public final class UserDetail
{
    private Users user;
    private Auth auth;

    // Getter and Setter
}


您可以继续并通过Hibernate将UserDetail对象存储在数据库中。

当然,您需要向UserDetail类添加所需的注释。

或者,不重建UserDetail而是创建一个新类来存储两个对象,例如UserDetailDO或UserDetailPersistence或您可以完全自己想到的更好的名称。

只需注意注释即可正确设置关系,例如OneToOne或OneToMany。

10-07 16:52