该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-03
我百思不得期解,在Spring2.0下可以,一到Spring2.5就不行了,请各位帮忙看看。
User.java package spring25.ch06; public class User { private String id; private String name; private String comment; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } }
UserDao.java package spring25.ch06; import java.util.List; public interface UserDao { void create(User user); void update(User user); public void delete(User user); public List<User> list(); }
UserDaoImpl.java package spring25.ch06.hibernate; import java.util.List; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.transaction.annotation.Transactional; import spring25.ch06.User; import spring25.ch06.UserDao; public class UserDaoImpl implements UserDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } @Override @Transactional public void create(User user) { Session session = sessionFactory.getCurrentSession(); session.save(user); } @Override @Transactional public void update(User user) { Session session = sessionFactory.getCurrentSession(); session.update(user); } @Override @Transactional public void delete(User user) { Session session = sessionFactory.getCurrentSession(); session.delete(user); } @Override @SuppressWarnings("unchecked") @Transactional(readOnly=true) public List<User> list() { Session session = sessionFactory.getCurrentSession(); return session.createQuery("from User u").list(); } }
Main.java package spring25.ch06.hibernate; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import spring25.ch06.User; import spring25.ch06.UserDao; public class Main { private static UserDao userDao; static { ApplicationContext ctx = new ClassPathXmlApplicationContext("spring25/ch06/hibernate/config.xml"); userDao = (UserDao) ctx.getBean("userDao"); } public static void main(String[] args) throws Exception { listUsers(); User user = new User(); user.setName("juggler"); user.setComment("juggler is a good boy."); userDao.create(user); listUsers(); user.setName("magic"); userDao.update(user); listUsers(); user = new User(); user.setName("Kut"); user.setComment("He is a good programmer."); userDao.create(user); listUsers(); userDao.delete(user); listUsers(); } private static void listUsers() { List<User> users = userDao.list(); for (User u : users) { System.out.println("ID: " + u.getId()); System.out.println("Name: " + u.getName()); System.out.println("Comment: " + u.getComment()); System.out.println("---------------------------------"); } System.out.println("\n"); } }
hibernate.cfg.xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/spring_study</property> <property name="connection.username">root</property> <property name="connection.password">xxxxxxx</property> <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <property name="current_session_context_class">thread</property> <property name="show_sql">false</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.use_sql_comments">true</property> <mapping resource="spring25/ch06/User.hbm.xml" /> </session-factory> </hibernate-configuration>
User.hbm.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="spring25.ch06"> <class name="User" table="user" dynamic-update="true"> <id name="id" column="id"> <generator class="uuid" /> </id> <property name="name" type="string" column="name" /> <property name="comment" type="string" column="comment" /> </class> </hibernate-mapping>
config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:spring25/ch06/hibernate/hibernate.cfg.xml" /> </bean> <bean id="userDao" class="spring25.ch06.hibernate.UserDaoImpl"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> </beans>
运行出错: Exception in thread "main" org.hibernate.HibernateException: createQuery is not valid without active transaction at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:297) at $Proxy7.createQuery(Unknown Source) at spring25.ch06.hibernate.UserDaoImpl.list(UserDaoImpl.java:45) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:301) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy5.list(Unknown Source) at spring25.ch06.hibernate.Main.listUsers(Main.java:44) at spring25.ch06.hibernate.Main.main(Main.java:20)
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-01-03
spring已经提供了所有增、删、改、查的实现,只要到继承这个类即可org.springframework.orm.hibernate.support.HibernateDaoSupport Session session = sessionFactory.getCurrentSession(); 如果是使用spring 干嘛要这样得到session 这个方法更好一些getSession(); |
|
返回顶楼 | |
发表时间:2008-01-16
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > <property name="dataSource"> <ref local="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLInnoDBDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingLocations"> <list> <value>classpath*:com/jhlt/model/*.hbm.xml</value> </list> </property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" rollback-for="Exception" /> <tx:method name="save*" read-only="false"/> </tx:attributes> </tx:advice> <aop:config proxy-target-class="true"> <aop:advisor pointcut="execution(* com.jhtl.service..*.save(..))" advice-ref="txAdvice"/> </aop:config> <bean id="courseDao" class="com.jhlt.dao.CourseDao"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="courseService" class="com.jhlt.service.CourseService"> <property name="courseDao"> <ref bean="courseDao"/> </property> </bean> 我这个配置不会出错,但事务没用,总是提交的,有错误不会回滚 |
|
返回顶楼 | |
发表时间:2008-01-16
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > <property name="dataSource"> <ref local="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLInnoDBDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingLocations"> <list> <value>classpath*:com/jhlt/model/*.hbm.xml</value> </list> </property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" rollback-for="Exception" /> <tx:method name="save*" read-only="false"/> </tx:attributes> </tx:advice> <aop:config proxy-target-class="true"> <aop:advisor pointcut="execution(* com.jhtl.service..*.save(..))" advice-ref="txAdvice"/> </aop:config> <bean id="courseDao" class="com.jhlt.dao.CourseDao"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="courseService" class="com.jhlt.service.CourseService"> <property name="courseDao"> <ref bean="courseDao"/> </property> </bean> 我这个配置不会出错,但事务好像不起左右,失败了也不会回滚 |
|
返回顶楼 | |
发表时间:2008-01-16
<?xml version="1.0" encoding="GBK"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>/WEB-INF/classes/proxool.properties</value> </property> </bean> <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource"> <property name="driver"> <value>${proxool.driver}</value> </property> <property name="driverUrl"> <value>${proxool.url}</value> </property> <property name="user"> <value>${proxool.username}</value> </property> <property name="password"> <value>${proxool.password}</value> </property> <property name="alias"> <value>${proxool.alias}</value> </property> <property name="houseKeepingSleepTime"> <value>${proxool.houseKeepingSleepTime}</value> </property> <property name="prototypeCount"> <value>${proxool.prototypeCount}</value> </property> <property name="maximumConnectionCount"> <value>${proxool.maximumConnectionCount}</value> </property> <property name="minimumConnectionCount"> <value>${proxool.minimumConnectionCount}</value> </property> <property name="trace"> <value>${proxool.trace}</value> </property> <property name="verbose"> <value>${proxool.verbose}</value> </property> <property name="houseKeepingTestSql"> <value>${proxool.houseKeepingTestSql}</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > <property name="dataSource"> <ref local="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> <!-- oracle org.hibernate.dialect.Oracle10gDialect --> org.hibernate.dialect.MySQLInnoDBDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingLocations"> <list> <value>classpath*:com/jhlt/model/*.hbm.xml</value> </list> </property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" rollback-for="Exception" /> <tx:method name="save*" read-only="false"/> </tx:attributes> </tx:advice> <aop:config proxy-target-class="true"> <aop:advisor pointcut="execution(* com.jhlt.service.*.*(..))" advice-ref="txAdvice"/> </aop:config> <bean id="courseDao" class="com.jhlt.dao.CourseDao"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="courseService" class="com.jhlt.service.CourseService"> <property name="courseDao"> <ref bean="courseDao"/> </property> </bean> </beans>哈哈,终于成功配置事务了哦 |
|
返回顶楼 | |
发表时间:2008-01-21
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* com.jhtl.service..*.save(..))" advice-ref="txAdvice"/> </aop:config> 我加了上面的 <aop:config proxy-target-class="true"> 会出问题,是不是哪个包没有引入的,我用的也是SPRING2.5 |
|
返回顶楼 | |
发表时间:2008-01-21
错误信息:如下: 2008-1-21 19:40:55 org.apache.catalina.core.AprLifecycleListener init 信息: The Apache Tomcat Native library which allows optimal performance in produ ction environments was not found on the java.library.path: D:\WorkTools\JavaTool s\JDK6\jdk1.6.0_03\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS; C:\Python\;C:\Perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D :\WorkTools\JavaTools\JDK6\jdk1.6.0_03\bin ;C:\Program Files\Perforce;D:\WorkToo ls\JavaTools\PHP5;C:\Program Files\SSH Communications Security\SSH Secure Shell 2008-1-21 19:40:55 org.apache.coyote.http11.Http11Protocol init 信息: Initializing Coyote HTTP/1.1 on http-8080 2008-1-21 19:40:55 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 574 ms 2008-1-21 19:40:55 org.apache.catalina.core.StandardService start 信息: Starting service Catalina 2008-1-21 19:40:55 org.apache.catalina.core.StandardEngine start 信息: Starting Servlet Engine: Apache Tomcat/6.0.14 2008-01-21 19:40:57,820 ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed> org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Config uration problem: Failed to import bean definitions from relative location [sprin g-xml/applicationContext-DB.xml] Offending resource: class path resource [applicationContext.xml]; nested excepti on is org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [spring-xml/application Context-DB.xml]; nested exception is java.lang.NoClassDefFoundError: org/aspectj /weaver/reflect/ReflectionWorld$ReflectionWorldException at org.springframework.beans.factory.parsing.FailFastProblemReporter.err or(FailFastProblemReporter.java:68) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderC ontext.java:85) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderC ontext.java:76) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe ader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:201) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe ader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:147) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe ader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:132) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe ader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registe rBeanDefinitions(XmlBeanDefinitionReader.java:488) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB eanDefinitions(XmlBeanDefinitionReader.java:383) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea nDefinitions(XmlBeanDefinitionReader.java:327) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea nDefinitions(XmlBeanDefinitionReader.java:295) at org.springframework.beans.factory.support.AbstractBeanDefinitionReade r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) at org.springframework.beans.factory.support.AbstractBeanDefinitionReade r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) at org.springframework.beans.factory.support.AbstractBeanDefinitionReade r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) at org.springframework.web.context.support.XmlWebApplicationContext.load BeanDefinitions(XmlWebApplicationContext.java:124) at org.springframework.web.context.support.XmlWebApplicationContext.load BeanDefinitions(XmlWebApplicationContext.java:92) at org.springframework.context.support.AbstractRefreshableApplicationCon text.refreshBeanFactory(AbstractRefreshableApplicationContext.java:97) at org.springframework.context.support.AbstractApplicationContext.obtain FreshBeanFactory(AbstractApplicationContext.java:411) at org.springframework.context.support.AbstractApplicationContext.refres h(AbstractApplicationContext.java:338) at org.springframework.web.context.ContextLoader.createWebApplicationCon text(ContextLoader.java:261) at org.springframework.web.context.ContextLoader.initWebApplicationConte xt(ContextLoader.java:199) at org.springframework.web.context.ContextLoaderListener.contextInitiali zed(ContextLoaderListener.java:45) at com.common.util.LocalContextLoaderListener.contextInitialized(LocalCo ntextLoaderListener.java:30) at org.apache.catalina.core.StandardContext.listenerStart(StandardContex t.java:3830) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4 337) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase .java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:77 1) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav a:920) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.j ava:883) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492 ) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java :311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl eSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443 ) at org.apache.catalina.core.StandardService.start(StandardService.java:5 16) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710 ) at org.apache.catalina.startup.Catalina.start(Catalina.java:566) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexp ected exception parsing XML document from class path resource [spring-xml/applic ationContext-DB.xml]; nested exception is java.lang.NoClassDefFoundError: org/as pectj/weaver/reflect/ReflectionWorld$ReflectionWorldException at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB eanDefinitions(XmlBeanDefinitionReader.java:405) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea nDefinitions(XmlBeanDefinitionReader.java:327) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea nDefinitions(XmlBeanDefinitionReader.java:295) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe ader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:190) ... 43 more Caused by: java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/Reflection World$ReflectionWorldException at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.springframework.aop.config.ConfigBeanDefinitionParser.class$(Conf igBeanDefinitionParser.java:209) at org.springframework.aop.config.ConfigBeanDefinitionParser.createPoint cutDefinition(ConfigBeanDefinitionParser.java:535) at org.springframework.aop.config.ConfigBeanDefinitionParser.parsePointc utProperty(ConfigBeanDefinitionParser.java:509) at org.springframework.aop.config.ConfigBeanDefinitionParser.parseAdviso r(ConfigBeanDefinitionParser.java:187) at org.springframework.aop.config.ConfigBeanDefinitionParser.parse(Confi gBeanDefinitionParser.java:146) at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(N amespaceHandlerSupport.java:69) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa rseCustomElement(BeanDefinitionParserDelegate.java:1246) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa rseCustomElement(BeanDefinitionParserDelegate.java:1236) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe ader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe ader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registe rBeanDefinitions(XmlBeanDefinitionReader.java:488) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB eanDefinitions(XmlBeanDefinitionReader.java:383) ... 46 more 2008-1-21 19:40:57 org.apache.catalina.core.StandardContext start 严重: Error listenerStart 2008-1-21 19:40:57 org.apache.catalina.core.StandardContext start 严重: Context [/xmweb] startup failed due to previous errors 2008-1-21 19:40:58 org.apache.coyote.http11.Http11Protocol start 信息: Starting Coyote HTTP/1.1 on http-8080 2008-1-21 19:40:58 org.apache.jk.common.ChannelSocket init 信息: JK: ajp13 listening on /0.0.0.0:8009 2008-1-21 19:40:58 org.apache.jk.server.JkMain start 信息: Jk running ID=0 time=0/47 config=null 2008-1-21 19:40:58 org.apache.catalina.startup.Catalina start 信息: Server startup in 3123 ms |
|
返回顶楼 | |
发表时间:2008-01-21
Spring.xml:
<?xml version="1.0" encoding="UTF-8"?> <!-- - Middle tier application context definition for the image database. --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:resources/pool/proxool.properties</value> </property> </bean> <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close"> <property name="driver"> <value>${proxool.drivername}</value> </property> <property name="driverUrl"> <value>${proxool.url}</value> </property> <property name="user"> <value>${proxool.username}</value> </property> <property name="password"> <value>${proxool.password}</value> </property> <property name="alias"> <value>${proxool.alias}</value> </property> <property name="houseKeepingSleepTime"> <value>${proxool.hourseKeepingSleepTime}</value> </property> <property name="prototypeCount"> <value>${proxool.prototypeCount}</value> </property> <property name="maximumConnectionCount"> <value>${proxool.maximumConnectionCount}</value> </property> <property name="minimumConnectionCount"> <value>${proxool.minimumConnectionCount}</value> </property> <property name="trace"> <value>${proxool.trace}</value> </property> <property name="verbose"> <value>${proxool.verbose}</value> </property> <property name="houseKeepingTestSql"> <value>${proxool.houseKeepingTestSql}</value> </property> <property name="delegateProperties" value="user=${proxool.username},password=${proxool.password}" /> </bean> <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="org.postgresql.Driver"> </property> <property name="url" value="jdbc:postgresql://localhost:5432/xmweb"> </property> <property name="username" value="xmleo"></property> <property name="password" value="123456"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.PostgreSQLDialect </prop> <prop key="hibernate.connection.provider_class"> org.hibernate.connection.ProxoolConnectionProvider </prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.proxool.existing_pool">true</prop> <!-- 把所有的SQL语句都输出到控制台 。true:输出到控制台--> <prop key="hibernate.show_sql">true</prop> <!-- Fetch Size 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数,我建议使用Oracle的最好将Fetch Size设到50--> <prop key="hibernate.jdbc.fetch_size">50</prop> <!-- atch Size是设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,我建议使用Oracle的最好将Batch Size设到30~50--> <prop key="hibernate.jdbc.batch_size">30</prop> <!-- 默认打开,启用cglib反射优化。cglib是用来在Hibernate中动态生成PO字节码的,打开优化可以加快字节码构造的速度 false:调试状态是最好关闭 --> <prop key="hibernate.cglib.use_reflection_optimizer"> true </prop> <!-- 在SessionFactory创建后,自动输出schema创建DDL语句到数据库.和create-drop同时使用的话,数据库schema会在SessionFactory显式关闭后被drop掉。 --> <!-- prop key="hibernate.hbm2ddl.auto">update</prop--><!--update validate--> <!--数据库连接池,proxool 启动选项 --> <!--<prop key="hibernate.proxool.xml">proxool.xml</prop> --> <!--数据库连接池,proxool别名 --> <!-- <prop key="hibernate.proxool.pool_alias">proxool</prop>--> </props> </property> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> <!--事务 --> <bean id="txManager" abstract="true" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <aop:config proxy-target-class="true"> <aop:advisor pointcut="execution(* com.xm.application.business.impl.*(..))" advice-ref="txAdvice" /> </aop:config> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" rollback-for="Exception" /> <tx:method name="find*" read-only="true" rollback-for="Exception" /> <tx:method name="load*" read-only="true" rollback-for="Exception" /> <tx:method name="save*" read-only="false" /> <tx:method name="insert*" no-rollback-for="Exception" /> <tx:method name="remove*" /> <tx:method name="add*" no-rollback-for="Exception" /> <tx:method name="*" read-only="true" /> </tx:attributes> </tx:advice> <!-- 支持 @Transactional 标记 <tx:annotation-driven /> 支持 @AspectJ 标记 <aop:aspectj-autoproxy/>--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource"> <ref local="dataSource"></ref> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref local="sessionFactory"></ref> </property> </bean> <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" abstract="false" scope="singleton" lazy-init="true" autowire="default" dependency-check="default"> </bean> <bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <property name="nativeJdbcExtractor"> <ref local="nativeJdbcExtractor" /> </property> </bean> <!-- ehcache缓存管理器. --> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:resources/cache/ehcache.xml" /> <property name="shared" value="true" /> </bean> </beans> |
|
返回顶楼 | |
发表时间:2008-03-28
我也遇到了类似的问题。不过我使用的持久层不是hibernate,而是db4o,配置也不是传统的xml,而是使用annotation。但是问题是类似的,写入数据库的数据没能找到,估计是事务失败了导致的。
我遇到的问题是,系统初始化的时候,王数据库里面写入了一些数据。然后在后面使用这些数据的时候,发现无法在数据库里面找到这些数据。系统没有报错,估计是初始化的时候事务没有提交 |
|
返回顶楼 | |
发表时间:2008-09-12
最好把背景换下
哈哈! |
|
返回顶楼 | |