ここで戸惑います。春の休止状態プログラムに楽観的ロックを実装したかったのですが、別のブラウザーでデータを開いて個別に更新しても、休止状態は StaleObjectStateException をスローしません。
私のダオは次のようになります。
public void update(User user) throws StaleObjectStateException{
sessionFactory.getCurrentSession().saveOrUpdate(user);
}
私のPojoは次のようになります。
@Version@Temporal(TemporalType.TIMESTAMP)
@Column(name="timestamp", length=19)
public Timestamp getTimestamp() {
return this.timestamp;
}
構成.xml
<bean name="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
</bean>
<tx:annotation-driven />
<bean name="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
例外がスローされない理由の 1 つは、データが永続化されているため、更新時に他のセッションのタイムスタンプも更新されることです。助けてください。
ペリー