【问题标题】:@Transient method call in Spring HibernateSpring Hibernate 中的@Transient 方法调用
【发布时间】:2011-11-04 16:47:38
【问题描述】:

我有一个 Pojo 类,我在其中创建了一个未与数据库表映射的字段。 所以我必须声明字段声明以及setter和getter方法@Transient,否则会显示错误。

@Transient
private String docHistoryString="";

@Transient
public String getDocHistoryString() {
    return docHistoryString;
}

@Transient
public void setDocHistoryString(String docHistoryString) {
    this.docHistoryString = docHistoryString;
}

现在,我的问题出在控制器上。我在这个瞬态字段中设置了一些值,但是当我尝试在视图(JSP)中使用 EL 访问这个变量时,它没有给出值。我认为这是因为我在 get 方法中使用了 @transient 注释。

【问题讨论】:

  • 能否贴出设置 docHistoryString 的代码,然后将其返回给视图?
  • @Transient 仅供 Hibernate 使用。它对 Spring、Java 和 JSTL 没有任何特殊含义。错误在别处。

标签: java spring hibernate spring-mvc


【解决方案1】:

所有的Hibernate注解,包括@Transient都必须按照access type来应用。默认情况下,它与@Id 应用的方式相同。也就是说,如果您将@Id 放在字段上,则必须将@Transient 应用于该字段。如果你将@Id 应用到getter 方法,你必须应用@Transient 方法。 Setter 方法总是被忽略。

但它可以自定义(根据文档),因此请确保没有人对访问类型做了奇怪的事情。

【讨论】:

    【解决方案2】:

    据此,声明字段/属性应该足够了

    http://download.oracle.com/javaee/5/api/javax/persistence/Transient.html

    您是否尝试过仅对字段/属性进行注释?如需进一步帮助,您必须发布更多代码 sn-ps。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 2011-03-25
      • 1970-01-01
      • 2016-02-12
      • 2012-12-26
      • 2012-11-18
      相关资源
      最近更新 更多