小编Eri*_*ric的帖子

保存后,Hibernate不会保留数据

有人可以解释为什么在这个例子中"lastAccessed"日期没有保存到数据库中,以及如何将它保存到数据库中?我的理解是do对象是save()调用之后的附加对象,因此所有修改都应该自动保留.

注意:"myDate"正确保留,因此所有其他弹簧配置似乎都是正确的.

@Transactional(readOnly = false)
public DateObject getOrCreateDateObject(Date myDate) {
    DateObject do = null;

    do = getCurrentDateObject();  // For my tests, this has been returning null

    if (do == null) {
        // create a new object
        do = new DateObject();
        do.setDate(myDate);
        sessionFactory.getCurrentSession().save(do);
    }

    // This does not persist to the database
    do.setLastAccessed(new Date());

    return do;
}
Run Code Online (Sandbox Code Playgroud)

在save()调用之后,我还尝试了以下一些组合(以及更多).这些都不起作用:

sessionFactory.getCurrentSession().merge(do);  // tried before and after do.setDate(d2)

sessionFactory.getCurrentSession().update(do);

sessionFactory.getCurrentSession().saveOrUpdate(do);

sessionFactory.getCurrentSession().flush();

DateObject doCopy = (DateObject)sessionFactory.getCurrentSession().load(DateObject.class, do.getId());
sessionFactory.getCurrentSession().merge(doCopy);
doCopy.setLastAccessed(new Date());
Run Code Online (Sandbox Code Playgroud)

我希望这是一个简单的答案,我只是没有看到.谢谢您的帮助!

编辑#1 05/22/2012

根据要求,这是该实体的映射,在src/main/resources/META-INF/dateobject.hbm.xml中指定.我可以看到在mysql客户端中使用"SELECT*FROM dateObjects"在数据库中创建列.MY_DATE已正确填充,但LAST_ACCESSED设置为NULL. …

spring hibernate flush save persist

6
推荐指数
1
解决办法
7514
查看次数

标签 统计

flush ×1

hibernate ×1

persist ×1

save ×1

spring ×1