diff --git a/spring-exceptions/pom.xml b/spring-exceptions/pom.xml
index 9e3cb81ef2ea..9ed328501847 100644
--- a/spring-exceptions/pom.xml
+++ b/spring-exceptions/pom.xml
@@ -135,6 +135,27 @@
el-api
2.2
+
+
+ org.apache.derby
+ derby
+ 10.12.1.1
+
+
+ org.apache.derby
+ derbyclient
+ 10.12.1.1
+
+
+ org.apache.derby
+ derbynet
+ 10.12.1.1
+
+
+ org.apache.derby
+ derbytools
+ 10.12.1.1
+
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/nontransientexception/cause/Cause1NonTransientConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/nontransientexception/cause/Cause1NonTransientConfig.java
index 266a04b679a7..3337e4796d4f 100644
--- a/spring-exceptions/src/main/java/org/baeldung/ex/nontransientexception/cause/Cause1NonTransientConfig.java
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/nontransientexception/cause/Cause1NonTransientConfig.java
@@ -20,7 +20,7 @@
@Configuration
@EnableTransactionManagement
-@PropertySource({ "classpath:persistence-mysql.properties" })
+@PropertySource({ "classpath:persistence-derby.properties" })
@ComponentScan({ "org.baeldung.persistence" })
public class Cause1NonTransientConfig {
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/nontransientexception/cause/Cause4NonTransientConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/nontransientexception/cause/Cause4NonTransientConfig.java
index 19e2ceebcace..3543526f3759 100644
--- a/spring-exceptions/src/main/java/org/baeldung/ex/nontransientexception/cause/Cause4NonTransientConfig.java
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/nontransientexception/cause/Cause4NonTransientConfig.java
@@ -20,7 +20,7 @@
@Configuration
@EnableTransactionManagement
-@PropertySource({ "classpath:persistence-mysql.properties" })
+@PropertySource({ "classpath:persistence-derby.properties" })
@ComponentScan({ "org.baeldung.persistence" })
public class Cause4NonTransientConfig {
@@ -72,5 +72,4 @@ final Properties hibernateProperties() {
// hibernateProperties.setProperty("hibernate.globally_quoted_identifiers", "true");
return hibernateProperties;
}
-
}
diff --git a/spring-exceptions/src/main/resources/persistence-derby.properties b/spring-exceptions/src/main/resources/persistence-derby.properties
new file mode 100644
index 000000000000..49fac9877e7f
--- /dev/null
+++ b/spring-exceptions/src/main/resources/persistence-derby.properties
@@ -0,0 +1,10 @@
+# jdbc.X
+jdbc.driverClassName=org.apache.derby.jdbc.EmbeddedDriver
+jdbc.url=jdbc:derby:memory:spring_exceptions;create=true
+jdbc.user=tutorialuser
+jdbc.pass=tutorialpass
+
+# hibernate.X
+hibernate.dialect=org.hibernate.dialect.DerbyDialect
+hibernate.show_sql=false
+hibernate.hbm2ddl.auto=create
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionTest.java
index 9afe2533deb0..b3bf0dcdcd6c 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionTest.java
@@ -17,22 +17,27 @@
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1NonTransientConfig.class }, loader = AnnotationConfigContextLoader.class)
public class InvalidResourceUsageExceptionTest {
- @Autowired
- private IFooService fooService;
+ @Autowired
+ private IFooService fooService;
- @Autowired
- private DataSource restDataSource;
+ @Autowired
+ private DataSource restDataSource;
- @Test(expected = InvalidDataAccessResourceUsageException.class)
- public void whenRetrievingDataUserNoSelectRights_thenInvalidResourceUsageException() {
- fooService.findAll();
- }
+ @Test(expected = InvalidDataAccessResourceUsageException.class)
+ public void whenRetrievingDataUserNoSelectRights_thenInvalidResourceUsageException() {
+ final JdbcTemplate jdbcTemplate = new JdbcTemplate(restDataSource);
+ jdbcTemplate.execute("revoke select from tutorialuser");
- @Test(expected = BadSqlGrammarException.class)
- public void whenIncorrectSql_thenBadSqlGrammarException() {
- final JdbcTemplate jdbcTemplate = new JdbcTemplate(restDataSource);
+ fooService.findAll();
- jdbcTemplate.queryForObject("select * fro foo where id=3", Integer.class);
- }
+ jdbcTemplate.execute("grant select to tutorialuser");
+ }
+
+ @Test(expected = BadSqlGrammarException.class)
+ public void whenIncorrectSql_thenBadSqlGrammarException() {
+ final JdbcTemplate jdbcTemplate = new JdbcTemplate(restDataSource);
+
+ jdbcTemplate.queryForObject("select * fro foo where id=3", Integer.class);
+ }
}
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/PermissionDeniedException.java b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/PermissionDeniedException.java
deleted file mode 100644
index 7f91b52e0054..000000000000
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/PermissionDeniedException.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.baeldung.ex.nontransientdataaccessexception;
-
-import org.baeldung.ex.nontransientexception.cause.Cause1NonTransientConfig;
-import org.baeldung.persistence.model.Foo;
-import org.baeldung.persistence.service.IFooService;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.PermissionDeniedDataAccessException;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.AnnotationConfigContextLoader;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { Cause1NonTransientConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class PermissionDeniedException {
-
- @Autowired
- private IFooService fooService;
-
- @Test(expected = PermissionDeniedDataAccessException.class)
- public void whenRetrievingDataUserNoSelectRights_thenPermissionDeniedException() {
- final Foo foo = new Foo("foo");
- fooService.create(foo);
- }
-
-}