0

是否可以声明实体属性以便将其重置为某个默认值,但前提是重新启动托管 ejb.jar 的服务器?

这些属性用于反映某些连接的客户端的状态,这些客户端将在重新启动时断开连接。

也许我应该用不同的解决方案来解决这个问题,但认为这个问题仍然有效。

4

2 回答 2

0

如果你有一个在应用程序启动/停止时触发的钩子呢?像ServletContextListener一样?停止时将感兴趣的条目(用户)保存到中间数据库表中,然后开始重新连接。

于 2012-08-19T20:37:53.607 回答
0

我使用 @Singleton 和 @Startup 注释的 EJB,测试似乎有效

@Singleton
@Startup
public class ClientResetBean {

    // Injected database connection:
    @PersistenceContext private EntityManager em;


    @PostConstruct
    private void resetClientState() {
        Query query = em.createQuery("UPDATE Client c SET c.online = false");
        query.executeUpdate();
    }
}
于 2012-08-27T05:21:47.937 回答