我有两个数据模型,我想在同一个数据表中显示它

时间:2014-03-31 21:48:07

标签: java database jsf

这是critere的数据模型

private DataModel<Criteres> dataModel = new ListDataModel<Criteres>();
private DataModel<Appreciation>dataModelA = new ListDataModel<Appreciation>();

public DataModel<Criteres> getDataModel() {
    dataModel.setWrappedData(criteresservice.findid());
    return dataModel;
}
    //setter//

这是赞赏的数据模型

public DataModel<Appreciation> getDataModelA() {
    dataModelA.setWrappedData(appreciationservice.listAllAppreciation());
    return dataModelA;
}
    //setter//

是否有解决方案可以在我的xhtml页面中的相同数据表中显示它?

1 个答案:

答案 0 :(得分:0)

一般来说,没有。数据表用于显示来自相同类型的对象的数据。如果CriteresAppreciation彼此无关,则无法做到这一点。

但是,如果CriteresAppreciation之间存在关系,则可以创建对象的自定义类(类型)并在那里声明该关系。例如,如果每个Appreciation对象与+1 like对象的Criteres类似,则可以创建以下类:

public class CustomCriteres {
    private Criteres criteres;
    private List<Appreciation> appreciations; // 2 appreciations ~ 2 likes, n appreciations ~ n likes

    // Getters and Setters
}

然后在数据表的辅助bean中,您可以拥有DataModelCustomCriteres个对象。它是这样的:

@ManagedBean
@ViewScoped
public class MrBean {
    private DataModel<CustomCriteres> customModel;

    public DataModel<CustomCriteres> getCustomModel() {
        /* This is where you would get both `Criteres` and ALL of the related 
          `Appreciation` objects at the same time and put them in 1 single 
           instance of `CustomCriteres` object */ 
    }
}

此时,您已经可以使用customModel作为数据表。