1

我遇到了以下问题。我将 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 使用相同的实例,并且从那时起一切正常。那么除了我的迟钝之外,有人知道我的问题可能是什么吗?

4

0 回答 0