gpt4 book ai didi

java - 使用 Hibernate ConstraintViolationException

转载 作者:行者123 更新时间:2023-11-30 08:38:02 24 4
gpt4 key购买 nike

我正在努力解决这里的一个小问题。基本上我们有一个表,其中列不是 PK 但需要是唯一的,因此我们在其上添加了唯一性约束。现在,在我们的服务层中,我们希望捕获当有人创建打破该唯一性约束的记录时生成的异常,并返回已经存在的记录而不是创建新记录。

基本上,代码如下所示:

    ObjectDto object = null;
try {
object = convertToDto(objectDao.create(convertToModel(pObject)));
}
catch (PersistenceException e) {
object= getByLabel(pObject.getLabel());
}
return object;

这...既有效又无效。我们正确地捕获了异常并返回了 getByLabel() 方法检索到的对象,但是 JUnit 仍然显示错误,因此我们的单元测试没有通过:

javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement

还有其他方法来处理这些用例吗?

编辑:

ObjectDto object = new ObjectDto();
object .setLabel("XXX");
object = objectService.create(object);

ObjectDto object2 = new ObjectDto();
object2.setLabel("XXX");
object2 = objectService.create(object2);

最佳答案

用这个注释你的测试方法:

@Test(expected=PersistenceException.class)

所以 jUnit 会知道会抛出异常。

关于java - 使用 Hibernate ConstraintViolationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36790573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com