我对Hibernate,所以有可能会出现很多问题,但我已经显示Account
实体这里:Hibernate查询返回一个空的结果列表
@Entity
@Table(name = "TABLE_NAME")
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private int id;
@Column(name = "EMAIL", unique = true)
private String email;
@Column(name = "PASSWORD", length = 128)
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
,我试图在选择数据库中的所有帐户以下功能:
public List<Account> getAllAccounts() {
Query q = em.createQuery("select a from Account a");
return q.getResultList();
}
的问题是,它返回一个空的列表,而是运行在Oracle SQL Developer中编辑的结果SQL(由<entry key="hibernate.show_sql" value="true" />
控制台中显示)时,我得到返回结果。
我在做什么错?
编辑:
我想创建一个春天的Web应用程序,所以我连接的休眠在这里的春天配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<context:component-scan base-package="com.checkpoint.core.repositories.jpa" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@[[url]]:[[port]]:[[sid]]" />
<property name="username" value="username" />
<property name="password" value="password" />
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaProperties">
<map>
<entry key="hibernate.hbm2ddl.auto" value="validate" />
<entry key="hibernate.show_sql" value="true" />
<entry key="hibernate.format_sql" value="true" />
<entry key="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
</map>
</property>
<property name="packagesToScan" value="com.checkpoint.core.models.entities" />
</bean>
<!-- Setup transaction management -->
<tx:annotation-driven />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" />
<context:component-scan base-package="com.checkpoint.core.services.impl" />
</beans>
CHAGE您的查询“从账户中选择一个”到“从账户” –
@sumantipparapu这不会帮助 - 他使用JPA实体管理'JPQL' - 不是Hibernate的具体'HQL' –
@Algosub如何你评估该清单是空的吗? SQL的外观如何?你是否检查过你没有使用Hibernate的其他数据库?你用'create'使用'hibernate.hbm2ddl.auto'吗?根据您提供的信息很难确定问题出在哪里。 –