我有一个简单的测试用例,我保存一个对象,然后测试该对象是否存在于db中。但contains方法总是返回false。该对象保存在数据库中
User entity = new User();
entity.setName("test");
User result = ObjectManager.save(entity);
boolean exists = ObjectManager.contains(result);
assertTrue(exists);
@Override
public boolean contains(T obj) throws DataStoreException {
try {
return entityManager.contains(obj);
} catch (Exception e) {
throw new DataStoreException(e);
}
}
答案 0 :(得分:3)
根据EntityManager documentation:
检查实例是否为托管 属于的实体实例 当前的持久化背景。
所以它不检查它是否在数据库中。可能是你已经在save方法中分离了实体,或者某种程度上它不在当前的持久化上下文中。
使用find或get来验证db。
中是否存在