我遇到了以下问题。我正在将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不知道设置器中设置的语言环境。当重新加载调用getter和setter一次或两次的页面时,getter和setter使用相同的实例,从那时起一切运行良好。所以有人知道除了我的愚蠢之外我的问题是什么吗?