@Transactional in spring working for read only but not write
up vote
0
down vote
favorite
Previously, I used to explicitly begin and commit the transactions but now I am trying to make use of @Transactional
annotation in spring. For some reason, all the read-only operations are working but persist()
and merge()
operations fail to work and I don't see anything on the logs. While debugging i also see that the spring has created the proxy but not sure where i am going wrong. Here is my code and spring application context configuration.
1.Jpa-context.xml
<context:annotation-config />
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="PersistenceUnit" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
2.Framework-context.xml
<context:component-scan base-package="com.github.djuloori.whiteboard.framework" />
<context:annotation-config/>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
<bean id = "m_SecurableEntityManager" class = "com.github.djuloori.whiteboard.framework.SecurableEntityManagerImpl"/>
3.SecurableEntityManagerImpl.Java
@Service
@Transactional
public class SecurableEntityManagerImpl implements SecurableEntityManager {
@Autowired
private EntityManagerFactory entityManagerFactory;
public void save(Object var1) {
getEntityManager().persist(var1);
}
public <T> TypedQuery<T> createQuery(String var1, Class<T> var2) {
return getEntityManager().createNamedQuery(var1,var2);
}
public <T> T update(T var1) {
return getEntityManager().merge(var1);
}
private EntityManager getEntityManager(){
return entityManagerFactory.createEntityManager();
}
}
I was also reading other questions related to @transactional
but haven't found a proper answer. I am new to spring, It would be great if anyone can help me.
spring spring-orm
add a comment |
up vote
0
down vote
favorite
Previously, I used to explicitly begin and commit the transactions but now I am trying to make use of @Transactional
annotation in spring. For some reason, all the read-only operations are working but persist()
and merge()
operations fail to work and I don't see anything on the logs. While debugging i also see that the spring has created the proxy but not sure where i am going wrong. Here is my code and spring application context configuration.
1.Jpa-context.xml
<context:annotation-config />
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="PersistenceUnit" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
2.Framework-context.xml
<context:component-scan base-package="com.github.djuloori.whiteboard.framework" />
<context:annotation-config/>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
<bean id = "m_SecurableEntityManager" class = "com.github.djuloori.whiteboard.framework.SecurableEntityManagerImpl"/>
3.SecurableEntityManagerImpl.Java
@Service
@Transactional
public class SecurableEntityManagerImpl implements SecurableEntityManager {
@Autowired
private EntityManagerFactory entityManagerFactory;
public void save(Object var1) {
getEntityManager().persist(var1);
}
public <T> TypedQuery<T> createQuery(String var1, Class<T> var2) {
return getEntityManager().createNamedQuery(var1,var2);
}
public <T> T update(T var1) {
return getEntityManager().merge(var1);
}
private EntityManager getEntityManager(){
return entityManagerFactory.createEntityManager();
}
}
I was also reading other questions related to @transactional
but haven't found a proper answer. I am new to spring, It would be great if anyone can help me.
spring spring-orm
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Previously, I used to explicitly begin and commit the transactions but now I am trying to make use of @Transactional
annotation in spring. For some reason, all the read-only operations are working but persist()
and merge()
operations fail to work and I don't see anything on the logs. While debugging i also see that the spring has created the proxy but not sure where i am going wrong. Here is my code and spring application context configuration.
1.Jpa-context.xml
<context:annotation-config />
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="PersistenceUnit" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
2.Framework-context.xml
<context:component-scan base-package="com.github.djuloori.whiteboard.framework" />
<context:annotation-config/>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
<bean id = "m_SecurableEntityManager" class = "com.github.djuloori.whiteboard.framework.SecurableEntityManagerImpl"/>
3.SecurableEntityManagerImpl.Java
@Service
@Transactional
public class SecurableEntityManagerImpl implements SecurableEntityManager {
@Autowired
private EntityManagerFactory entityManagerFactory;
public void save(Object var1) {
getEntityManager().persist(var1);
}
public <T> TypedQuery<T> createQuery(String var1, Class<T> var2) {
return getEntityManager().createNamedQuery(var1,var2);
}
public <T> T update(T var1) {
return getEntityManager().merge(var1);
}
private EntityManager getEntityManager(){
return entityManagerFactory.createEntityManager();
}
}
I was also reading other questions related to @transactional
but haven't found a proper answer. I am new to spring, It would be great if anyone can help me.
spring spring-orm
Previously, I used to explicitly begin and commit the transactions but now I am trying to make use of @Transactional
annotation in spring. For some reason, all the read-only operations are working but persist()
and merge()
operations fail to work and I don't see anything on the logs. While debugging i also see that the spring has created the proxy but not sure where i am going wrong. Here is my code and spring application context configuration.
1.Jpa-context.xml
<context:annotation-config />
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="PersistenceUnit" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
2.Framework-context.xml
<context:component-scan base-package="com.github.djuloori.whiteboard.framework" />
<context:annotation-config/>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
<bean id = "m_SecurableEntityManager" class = "com.github.djuloori.whiteboard.framework.SecurableEntityManagerImpl"/>
3.SecurableEntityManagerImpl.Java
@Service
@Transactional
public class SecurableEntityManagerImpl implements SecurableEntityManager {
@Autowired
private EntityManagerFactory entityManagerFactory;
public void save(Object var1) {
getEntityManager().persist(var1);
}
public <T> TypedQuery<T> createQuery(String var1, Class<T> var2) {
return getEntityManager().createNamedQuery(var1,var2);
}
public <T> T update(T var1) {
return getEntityManager().merge(var1);
}
private EntityManager getEntityManager(){
return entityManagerFactory.createEntityManager();
}
}
I was also reading other questions related to @transactional
but haven't found a proper answer. I am new to spring, It would be great if anyone can help me.
spring spring-orm
spring spring-orm
edited Nov 22 at 15:27
blackeyedcenter
627
627
asked Nov 22 at 1:35
Dhruva Juloori
374
374
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
Autowiring EntityManager fixed the issue
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Autowiring EntityManager fixed the issue
add a comment |
up vote
0
down vote
Autowiring EntityManager fixed the issue
add a comment |
up vote
0
down vote
up vote
0
down vote
Autowiring EntityManager fixed the issue
Autowiring EntityManager fixed the issue
answered Nov 22 at 4:16
Dhruva Juloori
374
374
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422732%2ftransactional-in-spring-working-for-read-only-but-not-write%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown