Я уже писал этот вопрос раньше, но поскольку ветка устарела, я думаю, что не получаю ответа, извините за дублирование , но моя проблема связана с весенней транзакцией.
У меня похожая проблема с управлением Spring Transaction.Я использую Hibernate в качестве платформы ORM.А ниже приведен отрывок файла конфигурации Spring моего приложения, в котором используется управление транзакциями Spring.
<context:annotation-config/>
<context:property-placeholder location="classpath:spring.properties"/>
<tx:annotation-driven transaction-manager="transactionManager"/>
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="find*" read-only="true"/>
<tx:method name="get*" read-only="true"/>
<tx:method name="create*" rollback-for="Exception"/>
<tx:method name="update*" rollback-for="Exception"/>
<tx:method name="remove*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="ServiceOperation" expression="execution(* com.shaikh.demo.*Service.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="ServiceOperation"/>
</aop:config>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
Все мои * классы обслуживания снабжены аннотацией @Transactional
.
В моем гибком DTOКлассы Я изменяю возвращаемое значение для каждого метода get *, как показано ниже, потому что я хочу удалить все не-ascii символы.Данные в базе данных предназначены только для чтения и предназначены для перечисления записей, перед этим мне нужно удалить не-ascii символы, которые создают проблемы.База данных - Oracle 11g.
Например, для атрибута accountNumber
public String getAccountNumber(){
return StringHelper.removeNonAscii(this.accountNumber);
}
Я прочитал, что мы меняем состояние объекта DTO и делаем его грязным, чтобы в спящем режиме эти грязные объекты сбрасывались вдб.Я могу видеть операторы обновления в журналах.
Вот мои вопросы:
1.) Я делаю объекты DTO грязными, но я пометил методы get * related только для чтения, так как я могуhibernate сбрасывает изменения в базу данных.
2.) Как я могу решить мою проблему, связанную с этим персонажем Non Ascii, без изменения данных в моей базе данных.Я что-то упустил?