我是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)
有人可以帮助我吗?
提前致谢。