java – 由于Hibernate Mapping需要将某些字段作为@Transient,但JSP无法访问它们

前端之家收集整理的这篇文章主要介绍了java – 由于Hibernate Mapping需要将某些字段作为@Transient,但JSP无法访问它们前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Java中,我可以访问类的Transient字段的值.但是,我不能访问JSP上的相同字段.如何让它们可用于JSP?

我正在使用Hibernate检索值,我认为这个解决方案将是Transformers.aliasToBean选项但是还有其他任何解决方案吗?

反正有没有摆脱瞬态注释但在Hibernate中具有相同的映射?在这种情况下,问题将得到解决.

@AssociationOverrides({
        @AssociationOverride(name = "tta.names",joinColumns = @JoinColumn(name = "id"))})
public class Names implements java.io.Serializable {

    private static final long serialVersionUID = -30956546435023625398L;

    @EmbeddedId
    private TableToAssociate tta = new TableToAssociate();


    @Transient
    public String getid() {
        return tta.getMyIds().getId();
    }

    public void setid(String id) {
        this.tta.getMyIds().setId(id);
    }

在Java中,我可以使用以下代码访问它们

     System.out.println(mystudents.getNames().iterator().next().getId());

在JSP中,我无权访问它们!

    

如果我放置另一个非瞬态名称字段,JSP会成功显示该项的值.

最佳答案
尝试重命名方法以匹配JavaBean规范.

代替:

@Transient
public String getid() {
    return tta.getMyIds().getId();
}

public void setid(String id) {
    this.tta.getMyIds().setId(id);
}

你应该有:

@Transient
public String getId() {
    return tta.getMyIds().getId();
}

public void setId(String id) {
    this.tta.getMyIds().setId(id);
}

猜你在找的Spring相关文章