2
JDO의 일반적인 시나리오라고 생각합니다. 나는 간단한 영속 클래스가 추가가 실패 할 경우 고유 제한 조건JDO 고유 제약 조건 위반 처리
public void addPerson(String name) throws NotUniqueException {
PersistenceManager pm = getPM();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person toAdd = new Person(name);
pm.makePersistent(toAdd);
// how do I throw a NotUniqueException if the transaction fails due to
// "name" not being unique?
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
}
을 위반했기 때문에 내가 감지 어떻게 간단하게 추가 할 수 있지만, 사용자 정의 예외를 throw 할 그런
@PersistenceCapable
public class Person {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.INCREMENT)
private long id;
@Persistent
@Unique
private String name
//constructor, equals, hashcode, etc...
}
말 JDO에서의이 오류 상태? 우선 성공 여부를 확인하기 위해 쿼리를 수행해야하는데, 확인 및 추가 작업이 수행되는 한 인 한 입니다. 나는 JDO 트랜잭션을 처음 접했을 뿐이며 쿼리를 수행하고 트랜잭션을 체크인하면 어떤 보장을 받을지 확신 할 수 없다.
this answer에 따르면 JPA를 사용하면 벤더 특정 원인 예외에 대한 예외 체인을 파고 해당 정보를 사용해야합니다. JDO가 사실입니까?