0
我在保存一對多關係的對象時遇到了一些問題。在我的問題一個UserGrop有很多UserPermissions。 Forthat關係船我已創建我的領域類是這樣的:Hibernate註釋多對一問題
@Entity
@Table(name = "tbl_usergroup")
public class UserGroup implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="userGroupId")
private long userGroupId;
@Column(name = "userGroupName")
private String userGroupName;
@OneToMany(cascade=CascadeType.ALL,mappedBy="userGroup",fetch=FetchType.EAGER)
private Set<UserPermissions> userPermissions = new HashSet<UserPermissions>(0);
}
@Entity
@Table(name = "tbl_group_permissions")
public class UserPermissions implements Serializable {
@Id
@GeneratedValue
private Long userPermissionId;
@ManyToOne(cascade =CascadeType.ALL)
@JoinColumn(name="userGroupId",nullable=false)
@ForeignKey(name = "userGroupId")
private UserGroup userGroup;
}
但是當保存用戶組,將其保存帽子UserPermisions對象也。與表格沒有任何關係(當檢索UserGroup對象時,它不返回UserPermisions對象集合)。
DB:
+------------------+-------------+
--+
| userPermissionId | userGroupId |
e |
+------------------+-------------+
--+
| 33 | NULL |
|
| 34 | NULL |
|
| 35 | NULL |
|
| 36 | NULL |
|
| 37 | NULL |
|
| 38 | NULL |
|
| 39 | NULL |
|
| 40 | NULL |
|
+------------------+-------------+
--+
8 rows in set (0.00 sec)
任何機構可以幫我解決這個問題呢?
我只保存UserGroup對象,我已經設置了8個UserPermisions對象,只保存UserGroup對象。我沒有單獨保存UserPermisions對象。 – Chandana
@Chandana是的,但是'Cascade.ALL'意味着保存事件被級聯,因此UserPermissions也被保存。不過,你需要保存UserPermissions,因爲它們負責關係(並且不要忘記填充'userGroup'字段)。 – Thomas
我對此有一些疑問? 爲什麼需要將UserGroup對象設置爲UserPermisions對象? – Chandana