Hibernate使用getter和setter的不同实例

时间:2013-11-12 17:55:08

标签: java spring hibernate struts2

我遇到了以下问题。我正在将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使用相同的实例,从那时起一切运行良好。所以有人知道除了我的愚蠢之外我的问题是什么吗?

0 个答案:

没有答案