我在MySQL应用程序上有一个Spring MVC,Spring Thymeleaf,Spring Security和Hibernate.我的任务是向所有当前登录的用户通知他们正在查看的页面是否有新数据,以便用户可以刷新并获取一组新数据.
我猜我可以将所有登录的用户存储在ApplicationScope会话中,然后以某种方式通知他们.但我以前从未这样做过,也不确定它会有多安全.
任何人都可以建议如何做到这一点?
public class Application{
@Id
private Long id;
@OneToMany(mappedBy = "application")
private List<Licence> licences = new ArrayList<Licence>();
...
}
public class Licence{
@Id
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ID", nullable = false)
private Application application;
...
}
Run Code Online (Sandbox Code Playgroud)
当我去 em.merge(application); 时,如何让 hibernate 将许可证保留在应用程序对象中,而不是尝试保留许可证;
我不是要在应用程序中使用级联保存许可证。许可证在真正持久化之前有很多业务规则要运行,因此我将分别调用每个许可证的persist。我该怎么做呢 ?这适用于持久化,但不适用于合并。
在合并我不断得到
org.hibernate.TransientObjectException: object is an unsaved transient
instance - save the transient instance before merging: com.cmr.Licence
Run Code Online (Sandbox Code Playgroud)