Я использую Spring 3.1.1.RELEASE, Hibernate 4.1.0.Final и JPA 2.0. Есть ли способ настроить транзакции Spring для фиксации после выполнения транзакций без кода Java? Другими словами, я хотел бы установить режим флеша для фиксации в файле контекста приложения, в файле конфигурации спящего режима или в файле persistence.xml. Моя весна класс обслуживания сделка выглядитКак установить режим очистки в «COMMIT» в конфигурационных файлах?
@Transactional(rollbackFor = Exception.class)
@Service
public class ContractServiceImpl implements ContractService
{
@Autowired
private ContractDAO m_contractDao;
public void addContract(Contract contract)
{
m_contractDao.create(contract);
}
...
и мой контекст приложения настроен как так ...
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:hsqldb:mem:myproject" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
</property>
<property name="persistenceXmlLocation" value="classpath*:META-INF/test-persistence.xml"/>
<property name="persistenceUnitName" value="testingDatabase"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="sharedEntityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven />
Мой файл persistence.xml является
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="testingDatabase" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.ejb.cfgfile" value="/hsql_hibernate.cfg.xml" />
<property name="org.hibernate.FlushMode" value="commit" />
</properties>
</persistence-unit>
</persistence>
и мой файл спящего режима конфигурации является
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.pool_size">1</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.hbm2ddl.auto">create-drop</property>
<mapping class="org.mainco.subco.sbadmin.domain.Product" />
<mapping class="org.mainco.subco.sbadmin.domain.Contract" />
<mapping class="org.mainco.subco.organization.domain.Country" />
<mapping class="org.mainco.subco.organization.domain.State" />
<mapping class="org.mainco.subco.organization.domain.Address" />
<mapping class="org.mainco.subco.organization.domain.OrganizationType" />
<mapping class="org.mainco.subco.organization.domain.Organization" />
</session-factory>
</hibernate-configuration>
Привет, Только b/c Я указал «без кода Java» в своем вопросе, я собираюсь удержаться, чтобы принять ваш ответ во время поиска. Thx для примера, tho. – Dave