<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.sqlServerDriver" />
<property name="url"
value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ITSM_JBPM;SelectMethod=cursor;" />
<property name="username" value="sa" />
<property name="password" value="sa" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionfactorybean"
singleton="true">
<!-------
问题一:property属性的名字能不能取成其他的名字?
mappingResources, hibernateProperties, dataSource
答案是: 不能随便取。
理由是:
package org.springframework.orm.hibernate3;
public class LocalSessionfactorybean extends AbstractSessionfactorybean {
private Resource[] mappingLocations;
private Properties hibernateProperties;
private DataSource dataSource;
public void setMappingResources(String[] mappingResources) {
this.mappingLocations = new Resource[mappingResources.length];
for (int i = 0; i < mappingResources.length; i++) {
this.mappingLocations[i] = new ClassPathResource(mappingResources[i].trim());
}
}
public void setHibernateProperties(Properties hibernateProperties) {
this.hibernateProperties = hibernateProperties;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
}
---->
<property name="mappingResources">
<list>
<value>
com/vandagroup/itsm/dataobject/attachment/ItsmAttachment.hbm.xml
</value>
<!-- ###################### -->
<!-- # jbpm mapping files 以下是配置的一些工作流相关的信息# -->
<!-- ###################### -->
<!-- hql queries and type defs -->
<value>org/jbpm/db/hibernate.queries.hbm.xml</value>
<!-- graph.def mapping files -->
<value>
org/jbpm/graph/def/ProcessDeFinition.hbm.xml
</value>
</list>
<!-- # jbpm mapping files 这里不是我的重点。省略不提# -->
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.sqlServerDialect
</prop>
<!-- # jbpm mapping files 这里是我的重点# -->
<!--
Hibernate sql方言 (hibernate.dialect)
如果出现如下错误,则可能是Hibernate sql方言 (hibernate.dialect)设置不正确。
Caused by: java.sql.sqlException: [Microsoft][sqlServer 2000 Driver for JDBC][sqlServer]'last_insert_id' 不是可以识别的 函数名。
RDBMS | 方言 |
---|---|
DB2 | org.hibernate.dialect.DB2Dialect |
DB2 AS/400 | org.hibernate.dialect.DB2400Dialect |
DB2 OS390 | org.hibernate.dialect.DB2390Dialect |
Postgresql | org.hibernate.dialect.PostgresqlDialect |
MysqL | org.hibernate.dialect.MysqLDialect |
MysqL with InnoDB | org.hibernate.dialect.MysqLInnoDBDialect |
MysqL with MyISAM | org.hibernate.dialect.MysqLMyISAMDialect |
Oracle (any version) | org.hibernate.dialect.OracleDialect |
Oracle 9i/10g | org.hibernate.dialect.Oracle9Dialect |
Sybase | org.hibernate.dialect.SybaseDialect |
Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialect |
Microsoft sql Server | org.hibernate.dialect.sqlServerDialect |
SAP DB | org.hibernate.dialect.SAPDBDialect |
Informix | org.hibernate.dialect.InformixDialect |
Hypersonicsql | org.hibernate.dialect.HsqlDialect |
Ingres | org.hibernate.dialect.IngresDialect |
Progress | org.hibernate.dialect.ProgressDialect |
Mckoi sql | org.hibernate.dialect.MckoiDialect |
Interbase | org.hibernate.dialect.InterbaseDialect |
Pointbase | org.hibernate.dialect.PointbaseDialect |
FrontBase | org.hibernate.dialect.FrontbaseDialect |
Firebird | org.hibernate.dialect.FirebirdDialect |
-->
<prop key="hibernate.show_sql">true</prop>
<!------
hibernate.show_sql 如果为true,表示在程序运行时,会在控制台输出SQL语句,这有利于跟踪Hibernate的运行状态,默认为false。在应用开发和测试阶段,可以把这个属性设为true,以便跟踪和调试应用程序,在应用发布阶段,应该把这个属性设为false,以便减少应用的输出信息,提高运行性能
----->
<prop key="hibernate.generate_statistics">true</prop>
<!------
hibernate.generate_statistics | 如果开启,Hibernate将收集有助于性能调节的统计数据. 取值 true | false |
--->
<prop key="hibernate.cache.use_second_level_cache">
false
</prop>
<------
hibernate.cache.use_second_level_cache | 能用来完全禁止使用二级缓存. 对那些在类的映射定义中指定<cache>的类,会默认开启二级缓存. 取值 true|false |
--->
<prop key="hibernate.cache.use_query_cache">false</prop>
</props>
<!------
hibernate.cache.use_query_cache | 允许查询缓存,个别查询仍然需要被设置为可缓存的. 取值 true|false |
---->
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<!-- transaction -->
<bean id="TransactionProxyfactorybean"
class="org.springframework.aop.framework.Proxyfactorybean">
<property name="proxyTargetClass">
<value>true</value>
</property>
<property name="singleton">
<value>false</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionAttributes">
<props>
<prop key="find*">
PROPAGATION_required,ISOLATION_DEFAULT,readOnly
</prop>
<prop key="*">
PROPAGATION_required,-Exception
</prop>
</props>
</property>
<property name="transactionManager">
<ref bean="hibernateTransactionManager" />
</property>
</bean>
<bean id="hibernateTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
<!----
package org.springframework.orm.hibernate3
public class HibernateTransactionManager extends AbstractPlatformTransactionManager
implements ResourceTransactionManager,beanfactoryAware,InitializingBean {
private SessionFactory sessionFactory;
/**
* Set the SessionFactory that this instance should manage transactions for.
*/
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
}
--> </bean>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。