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添加缺少的超级方法 –