利用hibernate+spring向mysql数据库加入数据。执行成功,但是数据库没数据。如果用hibernate查寻结果正常

利用hibernate+spring向mysql数据库加入数据。执行成功,但是数据库没数据。如果用hibernate查寻结果正常,第1张

你应该用了spring配置式事务,被限制了修改了吧。

如下面:

<!-- 事务代理拦截器的配置 -->

<bean id="baseTransactionProxy" abstract="true" class="orgspringframeworktransactioninterceptorTransactionProxyFactoryBean">

<property name="transactionManager">

<ref bean="transactionManager" />

</property>

<property name="transactionAttributes">

<props>

<prop key="insert">PROPAGATION_REQUIRED</prop>

<prop key="update">PROPAGATION_REQUIRED</prop>

<prop key="delete">PROPAGATION_REQUIRED</prop>

<prop key="">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>

这个配置中只允许 添加事务的对象中

以insert , update ,delete 开头的方法名 才允许修改数据

否则都是只读。

比方说我们写了一个方法,

doUpdateBook(Book book);

给这个类配置类事务,

那么它是无法修改数据库的,解决方法是,在配置事务里面吧规则加上去。

<!-- 事务代理拦截器的配置 -->

<bean id="baseTransactionProxy" abstract="true" class="orgspringframeworktransactioninterceptorTransactionProxyFactoryBean">

<property name="transactionManager">

<ref bean="transactionManager" />

</property>

<property name="transactionAttributes">

<props>

<prop key="insert">PROPAGATION_REQUIRED</prop>

<prop key="update">PROPAGATION_REQUIRED</prop>

<prop key="delete">PROPAGATION_REQUIRED</prop>

<prop key="doUpdate">PROPAGATION_REQUIRED</prop>

<prop key="">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>

,这样,所有 doUpdate 开头的方法都可以修改数据库。

hibernate能够生成查询语句 说明它已经进行了查询 *** 作

返回结果数据记录为0 很可能出现的情况 是 : 该查询未未访问到指定数据库表 。

当使用的数据库为 oracle数据库 时,你会在bean配置文件(hbmxml)中设置 时会有如下的class设置:

<class name="compbhibernatepoLogin" table="LOGIN" schema="SCOTT">

schema 表示该表的存放用户,所以如果你的表放在了其他用户(如system),查询语句就无法得到相应结果了。

所以,移植项目时也需要查看此用户是否为你正使用的用户。

另外表与表之间存在关系映射(一对多、多对多等)时,不管你的本class name属性是否为全路径,在映射到的另一class属性最好写全称,否则很可能出现无法到指定映射bean的错误

<many-to-many column="ROLES_ID" class="comsxdfmanagebeanRoles" lazy="false"/>

你的HQL查询语句对应的SQL查询语句为:

select from LmDO where sjlm=null;

这条查询语句的结果永远为空。因为在SQL查询语句中,表达式('a'=null)的比较结果即不是true,也不是false,而是null。

如果要查询sjlm为null的记录,应该使用 is null 比较运算符。

以上就是关于利用hibernate+spring向mysql数据库加入数据。执行成功,但是数据库没数据。如果用hibernate查寻结果正常全部的内容,包括:利用hibernate+spring向mysql数据库加入数据。执行成功,但是数据库没数据。如果用hibernate查寻结果正常、Hibernate 生成的查询语句拿到数据库能查出数据 但是在调试的时候没有数据是怎么回事、hibernate 一对多查询不了了!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10188312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存