还真信以为真的意思是“百度知道”吗

下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
org.springframework.orm.hibernate3.HibernateTemplate中有处理占位符的函数吗?是哪个函数?
叶_惠君0020
public java.util.List find(java.lang.String queryString,java.lang.Object... values)throws DataAccessExceptionDescription copied from interface: HibernateOperationsExecute an HQL query, binding a number of values to "?" parameters in the query string.Specified by:find in interface HibernateOperationsParameters:queryString - a query expressed in Hibernate's query languagevalues - the values of the parametersReturns:a List containing the results of the query executionThrows:DataAccessException - in case of Hibernate errorsSee Also:Session.createQuery(java.lang.String)
为您推荐:
其他类似问题
扫描下载二维码spring3.1.1整合hibernate4.1.2出现的问题 - 李高松 - ITeye技术网站
博客分类:
错误1:java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider原因:spring的sessionfactory和ansactionmanager与支持hibernate3时不同。解决:
&bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&
&property name="dataSource" ref="dataSource"/&
&bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"&
&property name="sessionFactory" ref="sessionFactory"/&
错误2:java.lang.NoSuchMethodError:org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session原因:hibernate4之后,spring31把HibernateDaoSupport去除,包括数据访问都不需要hibernatetemplate,这意味着dao需要改写,直接使用hibernate的session和query接口。解决:为了改写dao,足足花了一天时间,然后一个个接口进行单元测试,这是蛋疼的一个主要原因。错误3:nested exception is org.hibernate.HibernateException: No Session found for current thread原因:发现一些bean无法获得当前session,需要把之前一些方法的事务从NOT_SUPPORT提升到required,readonly=true见https://jira.springsource.org/browse/SPR-9020/topic/1120924解决:
&tx:advice id="baseServiceAdvice" transaction-manager="transactionManager"&
&tx:attributes&
&tx:method name="get*" read-only="true" propagation="REQUIRED"/&&!--之前是NOT_SUPPORT--&
&tx:method name="*" read-only="true" propagation="REQUIRED"/&&!--之前是NOT_SUPPORT--&
&tx:method name="save*" propagation="REQUIRED"/&
&tx:method name="up*" propagation="REQUIRED"/&
&tx:method name="remove*" propagation="REQUIRED"/&
&tx:method name="a*" propagation="REQUIRED"/&
&!--默认其他方法都是REQUIRED--&
&tx:method name="*"/&
&/tx:attributes&
&/tx:advice&
错误4:与错误3报错类似,java.lang.NoSuchMethodError:org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/S
at org.springframework.orm.hibernate3.SessionFactoryUti.doGetSession(SessionFactoryUtils.java:324) [spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.orm.hibernate3.SessionFactoryUtils.getSession(SessionFactoryUtils.java:202) [spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter原因:因为opensessioninview filter的问题,如果你的配置还是hibernate3,需要改为hibernate4
&filter-name&openSessionInViewFilter&/filter-name&
&filter-class&org.springframework.orm.hibernate4.support.OpenSessionInViewFilter&/filter-class&
浏览: 269016 次
来自: 北京
PageOffice插件,挺好使得,可以试试
需要用哪些jar,可以说下吗
哈哈哈,是啊。不用解压,我傻傻的解压出来搞半天。。。
第二种方法1.拷贝features和plugins目录覆盖到/ ...org.springframework.orm.hibernate3.HibernateCallback&T&问题 - ITeye问答
使用JDK1.6来编译如下代码,产生错误,代码如下:
List userList==getHibernateTemplate().executeWithNativeSession(
new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException,SQLException{
SQLQuery query=session.createSQLQuery("select * from userinfo where userid=?");
query.setParameter(0,userid);
return query.list();
编译时产生的错误如下:
[javac] test.java:36: 警告:
[unchecked] 未经检查的转换
[javac] 找到: &匿名 org.springframework.orm.hibernate3.HibernateCallback&
[javac] 需要: org.springframework.orm.hibernate3.HibernateCallback&T&
new HibernateCallback(){
[javac] test.java:35: 警告:
[unchecked] 方法调用未经检查:org.springframework.orm.hibernate3.HibernateTempla
te 中的 &T&executeWithNativeSession(org.springframework.orm.hibernate3.Hibernate
Callback&T&) 被应用于 (&匿名 org.springframework.orm.hibernate3.HibernateCallbac
userList=getHibernateTemplate().executeWithNativeSession(
[javac] test.java:35: 不兼容
[javac] 找到: java.lang.Object
[javac] 需要: java.util.List
userList=getHibernateTemplate().executeWithNativeSession(
[javac] 1 错误
[javac] 2 警告
请问如何修改上面的代码,才能使编译通过? 谢谢!
问题补充:7454103 写道引用List userList=getHibernateTemplate().executeWithNativeSession
语法不对!
改了
getHibernateTemplate().executeWithNativeSession(
new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException,SQLException{
SQLQuery query=session.createSQLQuery("select * from userinfo where userid=?");
query.setParameter(0,userid);
return query.list();
编译时有警告呀,如果去掉警告
&&& [javac] Compiling 1 source file to \WEB-INF\classes
[javac] test.java:36: 警告:
[unchecked] 未经检查的转换
[javac] 找到: &匿名 org.springframework.orm.hibernate3.HibernateCallback&
[javac] 需要: org.springframework.orm.hibernate3.HibernateCallback&T&
new HibernateCallback(){
[javac] test.java:35: 警告:
[unchecked] 方法调用未经检查:org.springframework.orm.hibernate3.HibernateTempla
te 中的 &T&executeWithNativeSession(org.springframework.orm.hibernate3.Hibernate
Callback&T&) 被应用于 (&匿名 org.springframework.orm.hibernate3.HibernateCallbac
getHibernateTemplate().executeWithNativeSession(
[javac] 2 警告
再说了,结果如何赋值给List呀?
引用List userList==getHibernateTemplate().executeWithNativeSession
语法不对!
//你用List userList==吗?是赋值应该是List userList=
你用下面的试试,应该就可以了。
List userList=(List)getHibernateTemplate().executeWithNativeSession(
new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException,SQLException{
SQLQuery query=session.createSQLQuery("select * from userinfo where userid=?");
query.setParameter(0,userid);
return query.list();
看错误难道返回类型不是list是object?
已解决问题
未解决问题org.springframework.orm.hibernate3.SessionFactoryUtils
Hibernate Session处理协助类,允许事务范围内的Session重用。同样提供了异常信息的转义。
支持受Spring管理及不受Spring管理的JTA事务同步(例如简单JTA或者EJB CMT),透明的支持事务范围内的Hibernate Sessions。注意:对于不受Spring管理的JTA事务,必须在Hibernate的配置当中指定JTA的TransactionManagerLookup。
org.springframework.orm.hibernate3.SessionHolder
包装了Hibernate Session及Hibernate事务的Session holder。在一个给定的Session工厂(SessionFactory)中的Hibernate事务管理对象( HibernateTransactionManager )绑定该类实例至当前线程。
org.springframework.orm.hibernate3.SpringSessionContext
Hibernate 3.1's CurrentSessionContext接口实现类,SessionFactoryUtils通过该类实例获得spring管理下与当前线程绑定的Session。
Used by Spring's&when told to expose a transaction-aware SessionFactory. This is the default as of Spring 2.5.
你可以自定义不同的CurrentSessionContext接口实现,并在设置SessionFactory工厂时,通过hibernate.current_session_context_class属性指定您的CurrentSessionContext实现。
org.springframework.orm.hibernate3.LocalSessionFactoryBean
FactoryBean接口创建了Hibernate的Session工厂。这是在spring应用环境中安装Hibernate Session工厂的常用方式(请参考FactoryBean接口);通过依赖注入,这个Session工厂可以被传递到基于Hibernate支持的Dao中。对于该类的配置及可以通过xml格式的Hibernate配置文件(通过制定&configLocation&属性),也可以完全通过该类完成。一个典型的配置总是由一个或者多个"mappingResources"属性,"hibernateProperties" 属性(不是绝对必须的), 和一个&dataSource&属性(SessionFactory使用)完成。&dataSource&属性同样可以由Hibernate的配置文件指定。但是这里的&dataSource&属性(指当前类内部的)支持任何基于Spring配置的DataSource,而不仅仅是Hibernate所依赖的数据库连接提供者。从单个数据库应用到分布式事务,SessionFactory的处理策略适用于大多数的应用。Hibernate事务管理对象或者JTA事务管理对象可用于不同的场合,JTA事务管理对象仅用于多个数据库的事务处理。默认情况下这个工厂对象将会派生出一个事务感知(transaction-aware)的SessionFactory型代理对象。无论使用任何事物管理策略(local/JTA/EJB CMT)或者任何事物同步机制(Sping/JTA),Spring均可以使数据在使用原生Hibernate Session工厂,getCurrentSession()方法的同时仍旧可以参与Spring管理的当前事务过程(ThreadLocal)。此外,getCurrentSession()方法对请求范围内的Session对象(由OpenSessionInViewFilter / OpenSessionInViewInterceptor管理的)提供了完美支持。
org.springframework.orm.hibernate3.HibernateTransactionManager&HibernateTransactionManager是一个为Hibernate Session工厂提供服务的PlatformTransactionManager接口实现。HibernateTransactionManager和一个绑定在当前线程上的Hibenrate Session对象进行捆绑。SessionFactoryUtils对象和HibernateTemplate对象可以感知当前线程内的Session对象,并自动参与当前线程内的事务处理。Using either&of those or going through SessionFactory.getCurrentSession() is required for Hibernate access code that needsto support this transaction handling mechanism.&支持自定义的隔离级别,及Hibernate事务超时设定。这个事务管理对象很适合于那种使用单Hibernate Session工厂的事务型数据访问应用,但是它也同样支持在一个事务中直接的数据源访问(例如相同数据源的JDBC代码访问)。这样就允许混合型的应用代码,例如使用Hibernate访问,使用JDBC访问(并不知道同时使用了Hibernate)!Application code needs to stick to the same simple Connection lookup&pattern as with DataSourceTransactionManager& (i.e. DataSourceUtils.getConnection(javax.sql.DataSource)& or going&through a TransactionAwareDataSourceProxy).&
....................
org.springframework.orm.hibernate3.HibernateAccessor&HibernateTemplate和HibernateInterceptor父类,定义了像SessionFactory,flushing行为等通用属性。不要尝试直接使用该类。请参考HibernateTemplate和HibernateInterceptor.
org.springframework.orm.hibernate3.HibernateInterceptor&这个拦截器在进入方法调用之前为当前线程绑定一个新的Hibernate Session实例,在方法执行完毕之后关闭并移除。如果当前线程内已存在Session实例(来自HibernateTransactionManager对象或者已被Hibernate拦截器拦截的方法环境),这个拦截器将会使用已有的Session实例。应用代码必须通过SessionFactoryUtils.getSession方法或者更好的方式&&Hibernate自己的SessionFactory.getCurrentSession()方法获得与当前线程绑定的Session对象。通常情况下,代码如下所示:
注意:通过委托的SessionFactoryUtils.convertHibernateAccessException方法,拦截器将会自动的将Hibernate异常转换成与org.springframework.dao异常体系兼容的异常(像HibernateTemplate那样)。如果想要获取原始异常,可以关闭这个功能。这个类可以认为是HibernateTemplate回调方法的一个替代方案。优点是:&&& 1)回调方法不需要使用匿名类。&&& 2)在数据访问的应用代码中可以抛出任何应用异常。缺点是依赖额外的拦截配置。然而,需要注意的是,通常情况下,在一个事务内部执行的数据访问代码不需要配置该拦截器。在事务开始的起点将会有一个与线程绑定的Session实例,所以增加这个拦截器仅仅是在需要对Session实例的属性微调例如flush模式 - 或者需要异常转义的时候。
org.springframework.orm.hibernate3.HibernateTemplate
简化Hibernate数据访问代码的辅助类。自动转换Hibernate原生异常为符合org.springframework.dao异常体系的DataAccessExceptions异常。最重要execute方法支持实现了HibernateCallback接口的Hibernate访问代码。无论是HibernateCallback接口实现或者其他的调用代码,无需关心对Session对象的获取和关闭以及Session对象的生命期异常。对典型的单步骤调用,提供了多种便利方法(find, load, saveOrUpdate, delete)。在一个service实现中可以通过一个SessionFactory引用直接获得该实例,或者在一个应用的上下文环境中获得一个配置好的实例作为该service的内部引用。注意:SessionFactory应当永远以bean的形式被配置在应用的上下文当中,第一种情况下直接提供给service实现,第二种情况提供模板实例引用。
阅读(...) 评论() &

我要回帖

更多关于 信以为真造句 的文章

 

随机推荐