avatar
我也来问问题了# Java - 爪哇娇娃
B*g
1
spring注入以后怎么执行DML语句或者run一个stored procedure
import javax.persistence.Query;
@PersistenceContext
private EntityManager em;
public void updateValue() {
Query qr = em.createNativeQuery("DELETE FROM table WHERE id = 1688");
qr.executeUpdate();
}
Error:
org.springframework.dao.InvalidDataAccessApiUsageException: Executing an
update/delete query; nested exception is javax.persistence.
TransactionRequiredException: Executing an update/delete query
注入是成功的,因为可以进行select操作。加了@Modifying @Transactional,也不太
行。
谢谢
avatar
o*i
2
xml configuration?

【在 B*****g 的大作中提到】
: spring注入以后怎么执行DML语句或者run一个stored procedure
: import javax.persistence.Query;
: @PersistenceContext
: private EntityManager em;
: public void updateValue() {
: Query qr = em.createNativeQuery("DELETE FROM table WHERE id = 1688");
: qr.executeUpdate();
: }
: Error:
: org.springframework.dao.InvalidDataAccessApiUsageException: Executing an

avatar
B*g
3
class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory" />
class="org.springframework.orm.jpa.
LocalContainerEntityManagerFactoryBean">












【在 o***i 的大作中提到】
: xml configuration?
avatar
o*i
4
加了@Transactional还是一样的错误?
@Transactional需要一些额外配置的,我没用过jpa的,建议你看看spring相关文档

【在 B*****g 的大作中提到】
: : class="org.springframework.orm.jpa.JpaTransactionManager"
: p:entityManagerFactory-ref="entityManagerFactory" />
: : class="org.springframework.orm.jpa.
: LocalContainerEntityManagerFactoryBean">
:
:
:

avatar
s*e
5
这个 updateValue()怎么被 called? Does calling method have @Transactional as
well?
avatar
r*s
6
你好像少了這行:


【在 B*****g 的大作中提到】
: : class="org.springframework.orm.jpa.JpaTransactionManager"
: p:entityManagerFactory-ref="entityManagerFactory" />
: : class="org.springframework.orm.jpa.
: LocalContainerEntityManagerFactoryBean">
:
:
:

avatar
B*g
7
yes

as

【在 s*********e 的大作中提到】
: 这个 updateValue()怎么被 called? Does calling method have @Transactional as
: well?

avatar
B*g
8
不懂,需要研究一下

【在 r*****s 的大作中提到】
: 你好像少了這行:
:

avatar
B*g
9
我连hibernate都没用过,硬着头皮上

【在 o***i 的大作中提到】
: 加了@Transactional还是一样的错误?
: @Transactional需要一些额外配置的,我没用过jpa的,建议你看看spring相关文档

avatar
r*s
10
spring transaction is injected,
either by annotation,
or tx:advice settings.
to go by annotation,
you need to tell spring to scan the code for @Transactional,
then spring will inject the annotation;
or you need to specify the patterns to set up the advice,
saying, by methods etc.

【在 B*****g 的大作中提到】
: 不懂,需要研究一下
avatar
F*n
11
Spring Annotation不是自动 Enable 的
得在config里告诉container 才行


【在 B*****g 的大作中提到】
: 不懂,需要研究一下
avatar
z*e
12
hibernate和spring的配合最常见的问题出在transaction的管理上
spring本身允许几种方式来启动事务,所以不会做缺省的设置
但是如果没有配置事务管理,hibernate就会出错
所以这两个之间有冲突,hibernate一定要指定一个事务管理器
而spring不会默认地给出一个,要自己动手配

【在 B*****g 的大作中提到】
: 不懂,需要研究一下
avatar
g*g
13
找个HelloWorld看看就明白了。这东西新手看书手动写xml是有点难。

【在 z****e 的大作中提到】
: hibernate和spring的配合最常见的问题出在transaction的管理上
: spring本身允许几种方式来启动事务,所以不会做缺省的设置
: 但是如果没有配置事务管理,hibernate就会出错
: 所以这两个之间有冲突,hibernate一定要指定一个事务管理器
: 而spring不会默认地给出一个,要自己动手配

avatar
B*g
14
晕倒,这和写xml有啥关系?

【在 g*****g 的大作中提到】
: 找个HelloWorld看看就明白了。这东西新手看书手动写xml是有点难。
avatar
c*e
15
en,网上google一個例子,copy,paste就成。spring,hibernate就是因为简单所以才有
这么多人用。

【在 g*****g 的大作中提到】
: 找个HelloWorld看看就明白了。这东西新手看书手动写xml是有点难。
avatar
B*g
16
有点意思,似乎现在annotation真的没起啥作用,我周一再试试

【在 F****n 的大作中提到】
: Spring Annotation不是自动 Enable 的
: 得在config里告诉container 才行
:

avatar
c*e
17
dba转行当java developer了?

【在 B*****g 的大作中提到】
: 有点意思,似乎现在annotation真的没起啥作用,我周一再试试
avatar
B*g
18
你才是DBA呢,俺才不干那没前途的行当

【在 c*********e 的大作中提到】
: dba转行当java developer了?
avatar
c*e
19
n多的人磨破了头都想当dba呢,database版成天的“俺40岁转行当dba"类的帖子。

【在 B*****g 的大作中提到】
: 你才是DBA呢,俺才不干那没前途的行当
avatar
B*g
20
问题解决了,就是没加这句,谢谢。

【在 r*****s 的大作中提到】
: 你好像少了這行:
:

avatar
z*3
21
嗯,我对进军湾区越来越有信心了
avatar
o*i
22
啊?这个也太低级了吧,哇咔咔~

【在 B*****g 的大作中提到】
: 问题解决了,就是没加这句,谢谢。
avatar
B*g
23
把包子还给我

【在 o***i 的大作中提到】
: 啊?这个也太低级了吧,哇咔咔~
avatar
o*i
24
都吃了还能吐出来呀

【在 B*****g 的大作中提到】
: 把包子还给我
avatar
B*g
25
事实证明,这些配置文件大家都是抄,然后重复使用,不知道内含的多了

【在 o***i 的大作中提到】
: 都吃了还能吐出来呀
avatar
o*i
26
也不是抄啦
只是这些个配置文件写好了就很少会去改动了,没有什么机会去知道内涵

【在 B*****g 的大作中提到】
: 事实证明,这些配置文件大家都是抄,然后重复使用,不知道内含的多了
avatar
c*e
27
对呀,程序员就是copy paste,没啥新鲜的。要不,咋美国白人都想当医生律师呢。白
人美女为啥都主动追求医生律师呢?

【在 B*****g 的大作中提到】
: 事实证明,这些配置文件大家都是抄,然后重复使用,不知道内含的多了
avatar
r*s
28
话不是这么讲的,
美国白人想程序员当他没这能力啊。
当医生咱华人的也不少啊,
当律师那只是因为他们有“关系”,
不是真的比咱强。
话又说回来,
写程序就跟写文章一样的,
多数文章都是实用文比如公文,
样板一样的copy paste就好,
比如新闻联播稿。
少数才是需要个人才能的,
才能被列入名著范围的,
比如战争与和平。

【在 c*********e 的大作中提到】
: 对呀,程序员就是copy paste,没啥新鲜的。要不,咋美国白人都想当医生律师呢。白
: 人美女为啥都主动追求医生律师呢?

avatar
B*g
29
你每天干的是哪类活?

【在 r*****s 的大作中提到】
: 话不是这么讲的,
: 美国白人想程序员当他没这能力啊。
: 当医生咱华人的也不少啊,
: 当律师那只是因为他们有“关系”,
: 不是真的比咱强。
: 话又说回来,
: 写程序就跟写文章一样的,
: 多数文章都是实用文比如公文,
: 样板一样的copy paste就好,
: 比如新闻联播稿。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。