急求懂javax.persistence和hibernate的IT人解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求懂javax.persistence和hibernate的IT人解答相关的知识,希望对你有一定的参考价值。

本项目是通过spring管理bean,用javax.persistence映射数据库表,最近要新增数据库表,出现了一个十分不解的问题,急求解答
将javax.persistence.xml中的数据库属性配置项 <property name="hibernate.hbm2ddl.auto" value="validate" />中value改为update后,重启tomcat服务器之前正常很多正常的添加删除都不能执行了,谁能帮忙看看,实在是很迷惑,到底是什么原因,怎么解决啊
sping配置文件applicationContext.xml配置内容如下:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/esageDB" />
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<!-- Defining the entity manager factory container -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceXmlLocation" value="classpath:persistence/persistence.xml" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="mysql" />
<property name="showSql" value="false" />
</bean>
</property>
</bean>

参考技术A 错误的,和你添加的表有关吗。

最好clean一次输出的目录

javax.persistence NamedQuery 未按预期工作

【中文标题】javax.persistence NamedQuery 未按预期工作【英文标题】:javax.persistence NamedQuery not working as expected 【发布时间】:2013-02-11 09:44:14 【问题描述】:

我可能对此很敏感,但查询没有返回我期望的结果...

我有两个表(实体):Properties 和 Landlords 如下:

属性由字段(以及其他字段)组成:Id、propertyRef 和 landLordsid(这是与表 Landlords 的多对一连接)。

Landlords 由字段(以及其他字段)组成:Id、landlordName 和用于联接的一对多 Collection。

我希望查询返回通过整数参数“landLord”传入的房东的所有属性,例如如果参数为 2,则过滤 Properties.landLordsid 等于 2。这是我当前使用的 NamedQuery,但它返回所有属性并且似乎没有过滤。

SELECT p 
from Properties p 
JOIN p.landLordsid l 
WHERE l.id = :landLord

知道查询有什么问题吗?

【问题讨论】:

【参考方案1】:

让hibernate为你做加入:

这个 HQL 应该可以工作:

from Properties p 
where p.landLord.id = :landLord

注意连接是如何隐含的,“select *”也是隐含的。

【讨论】:

感谢波西米亚人的帮助。事实证明,我从以前的查询向应用程序客户端传递了一个不正确的 Map 副本,因此结果没有改变!但至少现在我知道可以隐含加入和选择。 where p.landLord = :landLordp.landLord.id = :landLordId是一个更清楚的例子。我个人更喜欢前者。

以上是关于急求懂javax.persistence和hibernate的IT人解答的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Maven2 pom.xml 获取 Hibernate + javax.persistence

JPA中@javax.persistence.Lob注解有啥意义?

java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

小型 facelet 应用程序中的 javax.persistence.TransactionRequiredException

javax.persistence NamedQuery 未按预期工作

javax.persistence这个包在哪个jar包中