最佳答案
我的数据库包含3个表: 用户和服务实体具有多对多的关系,并与 SERVICE _ USER 表连接,如下所示:
用户-服务 _ 用户-服务
SERVICE _ USER 表包含额外的 BLOCKED 列。
执行这种映射的最佳方法是什么? 这些是我的实体类
@Entity
@Table(name = "USERS")
public class User implements java.io.Serializable {
private String userid;
private String email;
@Id
@Column(name = "USERID", unique = true, nullable = false,)
public String getUserid() {
return this.userid;
}
.... some get/set methods
}
@Entity
@Table(name = "SERVICES")
public class CmsService implements java.io.Serializable {
private String serviceCode;
@Id
@Column(name = "SERVICE_CODE", unique = true, nullable = false, length = 100)
public String getServiceCode() {
return this.serviceCode;
}
.... some additional fields and get/set methods
}
我按照这个例子 http://giannigar.wordpress.com/2009/09/04/m... 使用-jpa/ 下面是一些测试代码:
User user = new User();
user.setEmail("e2");
user.setUserid("ui2");
user.setPassword("p2");
CmsService service= new CmsService("cd2","name2");
List<UserService> userServiceList = new ArrayList<UserService>();
UserService userService = new UserService();
userService.setService(service);
userService.setUser(user);
userService.setBlocked(true);
service.getUserServices().add(userService);
userDAO.save(user);
问题是 hibernate 持久化 User 对象和 UserService 对象,CmsService 对象没有成功
我试着用 EAGER 提取-没有进展
有没有可能通过上面提供的映射实现我期望的行为?
也许有一些更优雅的方法来映射多个到多个带有附加列的连接表?