org.axonframework.eventstore.jpa
Class SQLStateResolver

java.lang.Object
  extended by org.axonframework.eventstore.jpa.SQLStateResolver
All Implemented Interfaces:
PersistenceExceptionResolver

public class SQLStateResolver
extends Object
implements PersistenceExceptionResolver

SQLStateResolver is an implementation of PersistenceExceptionResolver used to resolve sql state values to see if it violates a unique key constraint.

SQL state codes are standardized - the leading two characters identifying the category. Integrity constraint violations are in category 23. Some database systems further specify these state codes, e.g. postgres uses 23505 for a unique key violation.

Author:
Jochen Munz

Constructor Summary
SQLStateResolver()
          Constructor that uses the standard SQL state category for the check.
SQLStateResolver(String checkState)
          Constructor that can be used to supply a specific SQL state code for the check.
 
Method Summary
 boolean isDuplicateKeyViolation(Exception exception)
          Indicates whether the given exception represents a duplicate key violation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SQLStateResolver

public SQLStateResolver()
Constructor that uses the standard SQL state category for the check.


SQLStateResolver

public SQLStateResolver(String checkState)
Constructor that can be used to supply a specific SQL state code for the check.

The check is done using startsWith(), supplying a substring of the state code is ok.

Parameters:
checkState - The state string that is used in the check.
Method Detail

isDuplicateKeyViolation

public boolean isDuplicateKeyViolation(Exception exception)
Description copied from interface: PersistenceExceptionResolver
Indicates whether the given exception represents a duplicate key violation. Typically, duplicate key violations indicates concurrent access to an entity in the application. Two users might be accessing the same Aggregate, for example.

Specified by:
isDuplicateKeyViolation in interface PersistenceExceptionResolver
Parameters:
exception - The exception to evaluate
Returns:
true if the given exception represents a Duplicate Key Violation, false otherwise.


Copyright © 2010-2016. All Rights Reserved.