[
https://issues.apache.org/jira/browse/ARIES-1494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christian Schneider updated ARIES-1494:
---------------------------------------
Fix Version/s: (was: jpa-2.4.0)
jpa-2.5.0
> Exception when calling a transactional method twice from a non transaction
> method
> ---------------------------------------------------------------------------------
>
> Key: ARIES-1494
> URL: https://issues.apache.org/jira/browse/ARIES-1494
> Project: Aries
> Issue Type: Bug
> Components: JPA
> Affects Versions: jpa-2.3.0
> Reporter: Christian Schneider
> Assignee: Christian Schneider
> Fix For: jpa-2.5.0
>
>
> This issue was reported by Nicolas Dutertry on the karaf user list:
> http://karaf.922171.n3.nabble.com/JPA-and-transaction-issue-in-Karaf-4-0-4-td4045208.html
> He also provided a repository with a demo (which I forked):
> https://github.com/cschneider/test-jpa
> In short TestServiceImpl has a non Transactional method:
> public void delete(String... names) {
> for (String name : names) {
> System.out.println("Deleting " + name);
> deleteManager.delete(name);
> }
> }
> It calls DeleteManager
> @Transactional
> public void delete(String lastName) {
> Query query = entityManager.createQuery(
> "delete from Person where lastName = :lastName");
>
> query.setParameter("lastName", lastName);
> query.executeUpdate();
> }
> If the method TestServiceImpl.delete is called with one name then it works.
> If it is called with two names it fails.
> It is not even necessary to first create the person records to show the error.
> A workaround is to make the method TestServiceImpl.delete also transactional.
> Then it works.
> I will create a test case in the jpa code and fix the issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)