java - hibernate保存并从DB读取

时间:2012-06-29 07:01:01

标签: java hibernate

我是Java新手并使用hibernate。

我在代码中添加了数据点实例:

Datapoint dp = new Datapoint();
dp.setDataset(dataset);
dp.setStation(station);

我运行dataset.getDatapointCount()函数,该函数必须使用数据集id计算dp:

public int getDatapointCount()
    {

        Criteria        crit = Database.getSession().createCriteria(Datapoint.class);

        crit = crit.add(Restrictions.eq("dataset", this));
        crit.setProjection(Projections.rowCount());

        Integer         result = (Integer)crit.uniqueResult();

        return result.intValue();
    }

我得到了0个dataPoints。 (运行完成后,我会在数据库中看到新的数据点)。

我添加了

 Database.getSession().flush(); 
在getDatapointCount()函数之前

并重新返回新数字(例如1000)

但是在运行结束时,数据点没有保存在数据库中!

另外,如果我在filush()之后写两次getDatapointCount(),我就进入了第一个

正确答案时间(1000),第二次没有正确答案(0)

有人可以帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您使用FlushMode的价值是什么?

未提交的事务可能是您的数据未保存到数据库中的原因。

请参阅Hibernate FlushMode doc