removeGroupCoordinator()有两个参数:用户名和组名。该方法从输入组中删除输入用户。
有一个重载的removeGroupCoordinator(coordinators: Set<Long>, coordinatorIdToRemove: Long, groupId: Long),它通过最终调用coordinators.remove(coordinatorIdToRemove)从组中删除协调器。
在调用flush之前是否需要调用persist()?我相信这不是因为flush()会将数据库同步到缓存,我刚刚用我的coordinators.removeCoordinator(...).修改了缓存
public void removeGroupCoordinator(final long followerId, final long followingId)
{
DomainGroup groupEntity = getDomainGroup();
Set<Person> groupCoordinators = groupEntity.getCoordinators();
removeGroupCoordinator(groupCoordinators, followerId, followingId);
groupEntity.setCoordinators(groupCoordinators);
// getEntityManager().persist(groupEntity); needed?
getEntityManager().flush();
}发布于 2012-12-28 03:14:58
这取决于传入persist()的groupEntity实例的状态。根据JPA specification,persist(X)的语义是:
。
因此,我想说,只有在以下情况下,您的代码中才需要persist():
groupEntity是刚刚由new()实例化的新实例
groupEntity具有一些“持久化”级联关系,这些关系引用了一些刚刚由new()实例化的实例发布于 2012-12-27 23:53:29
调用persist()并不是强制性的。如果该对象已经与Hibernate会话相关联,则将保存对该对象所做的所有修改。来自手册Modifying persistent objects。
https://stackoverflow.com/questions/14056974
复制相似问题