我遇到了以下问题。我将 struts2 与 Spring 和 Hibernate 结合使用。我有一个带有瞬态字段的实体:
@Entity
public class Company implements java.io.Serializable {
private Locale locale;
public final void setLocale(final Locale locale) {
this.locale = locale;
LOG.debug("set locale: " + this.locale + "(" + System.identityHashCode(this) + ")");
}
@Transient
public Locale getLocale() {
LOG.debug("get locale: " + locale + "(" + System.identityHashCode(this) + ")");
return locale;
}
}
我的问题是当tomcat刚刚启动时,我getLocale()
在调用看似相同的实例后立即调用setLocale()
setter和getter中的哈希码不同,因此getter不知道setter中设置的语言环境。当重新加载调用 getter 和 setter 一次或两次的页面时,getter 和 setter 使用相同的实例,并且从那时起一切正常。那么除了我的迟钝之外,有人知道我的问题可能是什么吗?