1
我實現了具有組和權限的工作臺權限系統。 參考表workbench_group_permissions_reference
有引用,所以我可以輕鬆地添加和刪除組的權限。 添加新的引用條目可以正常工作,但刪除不會。我沒有收到任何錯誤,但刪除後,數據庫中仍存在該引用。我使用的是PostgreSQL。JPA - 從參考表中刪除條目
這裏是我引用類:
@XmlRootElement
@Entity
@Table(name = "workbench_group_permissions_reference", uniqueConstraints = {
@UniqueConstraint(columnNames = { "workbenchgroupspermissions_id", "workbench_groups_id" }) })
public class WorkbenchGroupPermissionReferenceEntity extends BasicEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@ManyToOne
@JoinColumn(name = "workbenchgroupspermissions_id")
private WorkbenchPermissionEntity workbenchPermission;
@ManyToOne
@JoinColumn(name = "workbench_groups_id")
private WorkbenchGroupEntity workbenchGroup;
/**
* Empty constructor to make JPA happy.
*/
public WorkbenchGroupPermissionReferenceEntity() {
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public WorkbenchPermissionEntity getWorkbenchPermission() {
return workbenchPermission;
}
public void setWorkbenchPermission(WorkbenchPermissionEntity workbenchPermission) {
this.workbenchPermission = workbenchPermission;
}
public WorkbenchGroupEntity getWorkbenchGroup() {
return workbenchGroup;
}
public void setWorkbenchGroup(WorkbenchGroupEntity workbenchGroup) {
this.workbenchGroup = workbenchGroup;
}
}
這是我的刪除方法:
public void deleteWorkbenchGroupPermission(final WorkbenchGroupPermissionReferenceEntity workbenchGroupPermission) {
long id = workbenchGroupPermission.getId();
super.delete(WorkbenchGroupPermissionReferenceEntity.class, id);
}
而且super.delete方法:
protected void delete(final Class<?> type, final Object id) {
Object ref = this.em.getReference(type, id);
this.em.remove(ref);
}
缺少什麼我在這裏?
份額爲你'super.delete(..)'方法的代碼。我們不知道它做什麼 – Ranjeet
可能的原因:https://stackoverflow.com/questions/34840903/silently-ignored-remove –
@Dark添加缺少的超級方法 –