我是 Java 新手并使用休眠。
我在我的代码数据点实例中添加了:
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 个数据点。(运行完成后,我看到数据库中的新数据点)。
我添加了
Database.getSession().flush();
在 getDatapointCount() 函数之前并真正返回新数字(例如 1000)
但在运行结束时,数据点没有保存在数据库中!
另外,如果我在 filush() 之后写了 getDatapointCount() 两次,我就进入了第一个
一次正确答案(1000),第二次没有正确答案(0)
有人能帮我吗?
提前致谢。