Hibernate 生成的查询语句拿到数据库能查出数据 但是在调试的时候没有数据是怎么回事 20
<propertyname="hibernate.connection.autocommit">true</property>配置文件已配置提交<context:prop...
<property name="hibernate.connection.autocommit">true</property> 配置文件已配置提交
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置c3p0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
</bean>
<!-- 配置 SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<property name="mappingLocations" value="classpath:entity/*.hbm.xml"></property>
</bean>
<!--配置Spring的声明事物 -->
<!-- 1. 配置 hibernate 的事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
这个是查询方法
public List<Employee> getAll() {
String hql = "FROM Employee";
return getSession().createQuery(hql).list();
} 展开
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置c3p0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
</bean>
<!-- 配置 SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<property name="mappingLocations" value="classpath:entity/*.hbm.xml"></property>
</bean>
<!--配置Spring的声明事物 -->
<!-- 1. 配置 hibernate 的事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
这个是查询方法
public List<Employee> getAll() {
String hql = "FROM Employee";
return getSession().createQuery(hql).list();
} 展开
3个回答
2015-03-24
展开全部
hibernate能够生成查询语句 说明它已经进行了查询操作
返回结果数据记录为0 很可能出现的情况 是 : 该查询未未访问到指定数据库表 。
当使用的数据库为 oracle数据库 时,你会在bean配置文件(.hbm.xml)中设置 时会有如下的class设置:
<class name="com.pb.hibernate.po.Login" table="LOGIN" schema="SCOTT">
schema 表示该表的存放用户,所以如果你的表放在了其他用户(如system),查询语句就无法得到相应结果了。
所以,移植项目时也需要查看此用户是否为你正使用的用户。
另外表与表之间存在关系映射(一对多、多对多等)时,不管你的本class name属性是否为全路径,在映射到的另一class属性最好写全称,否则很可能出现无法到指定映射bean的错误
<many-to-many column="ROLES_ID" class="com.sxdf.manage.bean.Roles" lazy="false"/>
返回结果数据记录为0 很可能出现的情况 是 : 该查询未未访问到指定数据库表 。
当使用的数据库为 oracle数据库 时,你会在bean配置文件(.hbm.xml)中设置 时会有如下的class设置:
<class name="com.pb.hibernate.po.Login" table="LOGIN" schema="SCOTT">
schema 表示该表的存放用户,所以如果你的表放在了其他用户(如system),查询语句就无法得到相应结果了。
所以,移植项目时也需要查看此用户是否为你正使用的用户。
另外表与表之间存在关系映射(一对多、多对多等)时,不管你的本class name属性是否为全路径,在映射到的另一class属性最好写全称,否则很可能出现无法到指定映射bean的错误
<many-to-many column="ROLES_ID" class="com.sxdf.manage.bean.Roles" lazy="false"/>
展开全部
将字段类型改为varchar2类型 (项目中使用,推荐使用),另外建议优先使用varchar2类型
http://blog.csdn.net/honghailiang888/article/details/73770344
mysql, mssqlserver 都没问题,就是oracle这个会查询不出,改一下字段类型就好了
http://blog.csdn.net/honghailiang888/article/details/73770344
mysql, mssqlserver 都没问题,就是oracle这个会查询不出,改一下字段类型就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你Spring的配置文件中没有将sessionFactory注入到Dao中
追问
已经注入了,给你看看代码
已经注入了,给你看看代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询