Java Examples for org.apache.ibatis.exceptions.PersistenceException
The following java examples will help you to understand the usage of org.apache.ibatis.exceptions.PersistenceException. These source code samples are taken from different open source projects.
Example 1
Project: mybatis-3-master File: SelectKeyTest.java View source code |
@Test(expected = PersistenceException.class)
public void testSeleckKeyReturnsNoData() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
Map<String, String> parms = new HashMap<String, String>();
parms.put("name", "Fred");
int rows = sqlSession.insert("org.apache.ibatis.submitted.selectkey.Table2.insertNoValuesInSelectKey", parms);
assertEquals(1, rows);
assertNull(parms.get("id"));
} finally {
sqlSession.close();
}
}
Example 2
Project: checklistbank-master File: NameUsageReparser.java View source code |
@Transactional(exceptionMessage = "names inserts failed", executorType = ExecutorType.REUSE)
private void writeNames(List<ScientificParsedName> pNames) {
for (ScientificParsedName spn : pNames) {
try {
nameMapper.create2(spn.sciname.getKey(), spn.pn);
} catch (PersistenceException e) {
Throwable cause = e.getCause() != null ? e.getCause() : e;
LOG.warn("Failed to persist name {}: {}", spn.pn, cause.getMessage());
nameMapper.failed(spn.sciname.getKey(), spn.pn.getScientificName(), spn.pn.getRank());
} catch (Exception e) {
LOG.error("Unexpected error persisting name {}", spn.pn, e);
nameMapper.failed(spn.sciname.getKey(), spn.sciname.getScientificName(), spn.sciname.getRank());
}
}
}
Example 3
Project: camel-master File: MyBatisInsertWithRollbackTest.java View source code |
@Test
public void testInsert() throws Exception {
getMockEndpoint("mock:commit").expectedMessageCount(0);
getMockEndpoint("mock:rollback").expectedMessageCount(1);
getMockEndpoint("mock:rollback").message(0).body().isEqualTo(null);
getMockEndpoint("mock:rollback").message(0).header(Exchange.EXCEPTION_CAUGHT).isInstanceOf(PersistenceException.class);
template.sendBody("direct:start", null);
assertMockEndpointsSatisfied();
// there should be still 2 rows
Integer rows = template.requestBody("mybatis:count?statementType=SelectOne", null, Integer.class);
assertEquals("There should be 2 rows", 2, rows.intValue());
}
Example 4
Project: mybatis-shards-master File: ShardImpl.java View source code |
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { final SqlSession sqlSession = SqlSessionUtils.getSqlSession(ShardImpl.this.sqlSessionFactory, ShardImpl.this.executorType, ShardImpl.this.exceptionTranslator); try { Object result = method.invoke(sqlSession, args); if (!isSqlSessionTransactional(sqlSession, ShardImpl.this.sqlSessionFactory)) { // force commit even on non-dirty sessions because some databases require // a commit/rollback before calling close() sqlSession.commit(true); } return result; } catch (Throwable t) { Throwable unwrapped = unwrapThrowable(t); if (ShardImpl.this.exceptionTranslator != null && unwrapped instanceof PersistenceException) { Throwable translated = ShardImpl.this.exceptionTranslator.translateExceptionIfPossible((PersistenceException) unwrapped); if (translated != null) { unwrapped = translated; } } throw unwrapped; } finally { closeSqlSession(sqlSession, ShardImpl.this.sqlSessionFactory); } }
Example 5
Project: MybatisSpring2.5.X-master File: SqlSessionUtils.java View source code |
/**
* {@inheritDoc}
*/
@Override
public void beforeCommit(boolean readOnly) {
// If there is no tx active data will be rolled back so there is no need to flush batches
if (this.holder.getExecutorType() == ExecutorType.BATCH && isActualTransactionActive()) {
try {
if (logger.isDebugEnabled()) {
logger.debug("Transaction synchronization flushing SqlSession [" + this.holder.getSqlSession() + "]");
}
this.holder.getSqlSession().flushStatements();
} catch (PersistenceException p) {
if (this.holder.getPersistenceExceptionTranslator() != null) {
DataAccessException translated = this.holder.getPersistenceExceptionTranslator().translateExceptionIfPossible(p);
if (translated != null) {
throw translated;
}
}
throw p;
}
}
}
Example 6
Project: mmp-master File: SmallIntArrayTest.java View source code |
@Test
public void testIntegerArrayWithTooLargeValue() {
String testName = "too large value test";
boolean exceptionWasCaught = false;
IntegerArrayBean t = new IntegerArrayBean();
Integer[] intArray = new Integer[] { 1, Integer.MAX_VALUE, 3 };
t.setIntegerArray(intArray);
t.setName(testName);
try {
session.insert("test.insertSmallIntArray", t);
} catch (PersistenceException e) {
log.info("caught expected exception: ", e);
exceptionWasCaught = true;
} finally {
session.rollback(true);
}
Assert.assertTrue(exceptionWasCaught, "Integers larger than PostgreSQL smallint need to throw exeption.");
}
Example 7
Project: aurora-master File: RowGarbageCollector.java View source code |
@Timed("row_garbage_collector_run")
@VisibleForTesting
@Override
public void runOneIteration() {
LOG.info("Scanning database tables for unreferenced rows.");
long startCount = deletedCount.get();
for (Class<? extends GarbageCollectedTableMapper> tableClass : TABLES) {
storage.write((NoResult.Quiet) storeProvider -> {
try (SqlSession session = sessionFactory.openSession(true)) {
GarbageCollectedTableMapper table = session.getMapper(tableClass);
for (long rowId : table.selectAllRowIds()) {
try {
table.deleteRow(rowId);
deletedCount.incrementAndGet();
} catch (PersistenceException e) {
}
}
}
});
}
LOG.info("Deleted {} unreferenced rows.", Long.valueOf(deletedCount.get() - startCount));
}
Example 8
Project: xbpm5-master File: ConcurrentEngineUsageTest.java View source code |
protected void retryStartProcess(String runningUser) {
int retries = MAX_RETRIES;
int timeout = 200;
boolean success = false;
while (retries > 0 && !success) {
try {
runtimeService.startProcessInstanceByKey("concurrentProcess", Collections.singletonMap("assignee", (Object) runningUser));
success = true;
} catch (PersistenceException pe) {
retries = retries - 1;
log.debug("Retrying process start - " + (MAX_RETRIES - retries));
try {
Thread.sleep(timeout);
} catch (InterruptedException ignore) {
}
timeout = timeout + 200;
}
}
if (success == false) {
log.debug("Retrying process start FAILED " + MAX_RETRIES + " times");
}
}
Example 9
Project: MyBatisDAOHelper-master File: MyBatisDAO.java View source code |
/**
* Default get by id method.
* </br></br>
* Almost all objects in the db will
* need this (except mapping tables for multiple joins, which you
* probably shouldn't even have as objects in your model, since proper
* MyBatis mappings can take care of that).
* </br></br>
* Example:
* </br>
* If your DAO object is called CarInfo.java,
* the corresponding mapper query id should be: <select id="getCarInfo" ...
*/
public T get(PK id) throws PersistenceException {
SqlSession session = sf.openSession();
T obj = null;
try {
//If the object's calls name is AddressType.java, this matches the mapper query id: "namespace.getAddressType"
String query = NAMESPACE + "." + PREFIX_SELECT_QUERY + this.type.getSimpleName();
obj = (T) session.selectOne(query, id);
} finally {
session.close();
}
return obj;
}
Example 10
Project: syncope-master File: RestServiceExceptionMapper.java View source code |
@Override public Response toResponse(final Exception ex) { LOG.error("Exception thrown", ex); ResponseBuilder builder; if (ex instanceof AccessDeniedException) { // leaves the default exception processing to Spring Security builder = null; } else if (ex instanceof SyncopeClientException) { SyncopeClientException sce = (SyncopeClientException) ex; builder = sce.isComposite() ? getSyncopeClientCompositeExceptionResponse(sce.asComposite()) : getSyncopeClientExceptionResponse(sce); } else if (ex instanceof DelegatedAdministrationException) { builder = builder(ClientExceptionType.DelegatedAdministration, ExceptionUtils.getRootCauseMessage(ex)); } else if (ex instanceof EntityExistsException || ex instanceof DuplicateException || ex instanceof PersistenceException && ex.getCause() instanceof EntityExistsException) { builder = builder(ClientExceptionType.EntityExists, getJPAMessage(ex instanceof PersistenceException ? ex.getCause() : ex)); } else if (ex instanceof DataIntegrityViolationException || ex instanceof JpaSystemException) { builder = builder(ClientExceptionType.DataIntegrityViolation, getJPAMessage(ex)); } else if (ex instanceof ConnectorException) { builder = builder(ClientExceptionType.ConnectorException, ExceptionUtils.getRootCauseMessage(ex)); } else if (ex instanceof NotFoundException) { builder = builder(ClientExceptionType.NotFound, ExceptionUtils.getRootCauseMessage(ex)); } else { builder = processInvalidEntityExceptions(ex); if (builder == null) { builder = processBadRequestExceptions(ex); } // process JAX-RS validation errors if (builder == null && ex instanceof ValidationException) { builder = builder(validationEM.toResponse((ValidationException) ex)).header(RESTHeaders.ERROR_CODE, ClientExceptionType.RESTValidation.name()).header(RESTHeaders.ERROR_INFO, ClientExceptionType.RESTValidation.getInfoHeaderValue(ExceptionUtils.getRootCauseMessage(ex))); ErrorTO error = new ErrorTO(); error.setStatus(ClientExceptionType.RESTValidation.getResponseStatus().getStatusCode()); error.setType(ClientExceptionType.RESTValidation); error.getElements().add(ExceptionUtils.getRootCauseMessage(ex)); builder.entity(error); } // ...or just report as InternalServerError if (builder == null) { builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR).header(RESTHeaders.ERROR_INFO, ClientExceptionType.Unknown.getInfoHeaderValue(ExceptionUtils.getRootCauseMessage(ex))); ErrorTO error = new ErrorTO(); error.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); error.setType(ClientExceptionType.Unknown); error.getElements().add(ExceptionUtils.getRootCauseMessage(ex)); builder.entity(error); } } return builder == null ? null : builder.build(); }
Example 11
Project: OpenIDM-master File: ProcessDefinitionResource.java View source code |
@Override
public Promise<ResourceResponse, ResourceException> deleteInstance(Context context, String resourceId, DeleteRequest request) {
try {
Authentication.setAuthenticatedUserId(context.asContext(SecurityContext.class).getAuthenticationId());
ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) processEngine.getRepositoryService().getProcessDefinition(resourceId);
if (processDefinition != null) {
ResourceResponse r = convertInstance(processDefinition, request.getFields());
processEngine.getRepositoryService().deleteDeployment(processDefinition.getDeploymentId(), false);
return r.asPromise();
} else {
throw new NotFoundException();
}
} catch (ActivitiObjectNotFoundException ex) {
return new NotFoundException(ex.getMessage()).asPromise();
} catch (PersistenceException ex) {
return new ConflictException("The process definition has running instances, can not be deleted").asPromise();
} catch (ResourceException e) {
return e.asPromise();
} catch (Exception ex) {
return new InternalServerErrorException(ex.getMessage()).asPromise();
}
}
Example 12
Project: spring-master File: MyBatisSpringTest.java View source code |
@Test
public void testBatchWithError() {
try {
setupBatchStatements();
session = SqlSessionUtils.getSqlSession(sqlSessionFactory, ExecutorType.BATCH, exceptionTranslator);
session.getMapper(TestMapper.class).insertTest("test1");
session.getMapper(TestMapper.class).insertTest("test2");
session.update("org.mybatis.spring.TestMapper.insertFail");
session.getMapper(TestMapper.class).insertTest("test3");
assertThrows(PersistenceException.class, () -> session.commit(true));
} finally {
SqlSessionUtils.closeSqlSession(session, sqlSessionFactory);
}
}
Example 13
Project: sonarqube-master File: OrganizationDaoTest.java View source code |
@Test
public void insert_fails_if_row_with_uuid_already_exists() {
insertOrganization(ORGANIZATION_DTO_1);
OrganizationDto dto = new OrganizationDto().setUuid(ORGANIZATION_DTO_1.getUuid()).setKey("other key").setName("other name").setCreatedAt(2_999_000L).setUpdatedAt(2_888_000L);
expectedException.expect(PersistenceException.class);
underTest.insert(dbSession, dto, false);
}
Example 14
Project: freemarker-scripting-master File: PreparedParamsTest.java View source code |
/** * PersistenceException will be thrown with cause of UnsupportedOperationException */ @Test(expected = PersistenceException.class) public void testParamsObjectCall() { try (SqlSession sqlSession = sqlSessionFactory.openSession()) { PreparedParamsMapper mapper = sqlSession.getMapper(PreparedParamsMapper.class); mapper.findUsingParamsObject(new PreparedParam()); } }
Example 15
Project: Mapper-master File: TestInsert.java View source code |
/**
* 插入空数据,id不能为null,会报错
*/
@Test(expected = PersistenceException.class)
public void testDynamicInsertAll() {
SqlSession sqlSession = MybatisHelper.getSqlSession();
try {
CountryMapper mapper = sqlSession.getMapper(CountryMapper.class);
mapper.insert(new Country());
} finally {
sqlSession.close();
}
}