首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dropwizard SaveOrUpdateEventListener

dropwizard SaveOrUpdateEventListener
EN

Stack Overflow用户
提问于 2015-03-21 01:44:51
回答 1查看 431关注 0票数 0

我试着在dropwizard hibernate中使用SaveOrUpdateDateListener扩展DefaultSaveOrUpdateEventListener。当我在Applicaion类的EventListenerGroup中注册时,如下所示:

代码语言:javascript
复制
@Override
public void run(DFConfiguration configuration,
                Environment environment) throws ClassNotFoundException {
    //register custom listener into EventListener
    SessionFactory sessionFactory = hibernate.getSessionFactory();
    EventListenerRegistry listenerRegistry = sessionFactory.getSessionFactoryOptions().getServiceRegistry().getService(EventListenerRegistry.class);
    EventListenerGroup<SaveOrUpdateEventListener> evlg = listenerRegistry.getEventListenerGroup(EventType.SAVE_UPDATE);
    evlg.appendListener(new SaveOrUpdateDateListener());

}

这是SaveOrUpdateDateListener类。公共类SaveOrUpdateDateListener扩展了DefaultSaveOrUpdateEventListener {

代码语言:javascript
复制
@Override
public void onSaveOrUpdate(SaveOrUpdateEvent event) {
    logger.debug("Entering onSaveOrUpdate()");

    if (event.getObject() instanceof AuditableBase) {
        AuditableBase object = (AuditableBase) event.getObject();

        // set the Updated date/time
        object.setUpdated(new Date().getTime());

        // set the Created date/time
        if (object.getCreated() == 0) {
            object.setCreated(new Date().getTime());
        }
    }
}

}

它在部署时抛出异常:

请求的未知服务org.hibernate.event.service.spi.EventListenerRegistry,堆栈跟踪: org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:126)处请求的org.hibernate.service.UnknownServiceException:未知服务org.hibernate.event.service.spi.EventListenerRegistry

有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-04-02 22:48:41

我找到了解决的办法。因为我用的是createdTime和updatedTime,所以@CreationTimestamp和@UpdateTimestamp帮我解决了这个问题。所以我根本不需要任何自定义的监听器。嗯..。

代码语言:javascript
复制
 @Column(name="createdTime", nullable = false, insertable = true,updatable = false)
 @Temporal(value = TemporalType.TIMESTAMP)
 @CreationTimestamp
 private Date createdTime;

 @Column(name="updatedTime", nullable = false, insertable = true, updatable = true)
 @Temporal(value = TemporalType.TIMESTAMP)
 @UpdateTimestamp
 private Date updatedTime;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29172729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档