jsf继承抽象类

时间:2013-11-02 19:25:08

标签: jsp jsf inheritance

在我的项目中,我有一个@Entity抽象类EVENT。我很少有@Entity类扩展EVENT,比如LOGIN,CHANGE_NAME,SEND_TEXT。每个类都有自己的字段 - 登录包含EVENT加IP的字段,CHANGE_NAME包含旧用户名字段,SEND_TEXT包含文本字段,以及您发送文本的字段。
现在 - 我有@Entity与@OneToMany关系到Event类。

@OneToMany(mappedBy = "wycenioneAuta", cascade = {CascadeType.DETACH, CascadeType.MERGE,
            CascadeType.PERSIST, CascadeType.REFRESH}, fetch = FetchType.EAGER)
    @Access(AccessType.FIELD)
    private Set<Event> event= new LinkedHashSet<>();

它存储在此@Entity上执行的所有事件。现在我描述我的问题:
我想显示事件的历史。我试过了

<ui:repeat value="class.event var="e">
 #{e.id},
 #{e.date}, 
 #{e.user.name}
 </ui:repeat> 


但是我只能从具体的类中显示字段,每当我尝试从特定事件中获取数据时,我的应用程序就会粉碎,“couse f.e. Change_name没有字段'ip'或Send_Text没有字段oldUsername。有没有办法显示这些数据?当我调试我的应用程序时,事件集看起来很好 - 每个事件都正确填充了它的字段。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

所以我需要做点什么,所以我在这里解决了这个问题: 我在具体课程中制作了几个@Transient方法。它们看起来像这样:

@Transient
public boolean isChangeName(){
   return (this instanceof ChangeName);
}

在我的页面中:

<ui:repeat value="#{entry.eventList}" var="e">
     #{e.isChangeName? e.oldName: ""}
     #{e.isSendText? e.text: ""}
</ui:repeat>

它就像我想要的那样工作 - 显示包含详细信息的事件列表。 希望有一天能帮助某人:)