JPA填充列表中的JSF调用方法

时间:2013-09-07 09:28:38

标签: jsf jpa methods

我有一个包含一些oneToMany关系的数据库表。 这是实体的片段:

@OneToMany(mappedBy="auction")
private List<Biding> bidings;

现在我想在我的jsf网站上打出更高的出价:

<ui:repeat var="singleAuction" value="#{auctionListBean.auctionList}"  varStatus="status">
<h:outputLabel value="#{singleAuction.getHigherBid()}"/>
</ui:repeat>

这是我的aucListBean

    @ManagedBean
    public class AuctionListBean 
    {
        @PersistenceContext()
        EntityManager entityManager;

        public List<AuctionBean> getAuctionList() {
            Query query = entityManager.createQuery("SELECT e FROM Auction e");
            @SuppressWarnings("unchecked")
            List<AuctionBean> resultList = (List<AuctionBean>) query.getResultList();
            return resultList;
        }
    }

我也有AuctionBean类,我之前用它来添加新的拍卖。现在我想创建一个具有一个属性的bean:auctionBean列表。我使用我的实体填充它并将其转换为AuctionBean。在AuctionBean类中,我实现了提到的方法:

public double getHigherBid()
    {
        double higherBid = 0;
        for(Biding a : bidings)
        {
            if(a.getCurrentPrice() > higherBid) 
                higherBid = a.getCurrentPrice();
        }
        return higherBid;
    } 

问题是“未找到方法”。似乎它仍然因为某些原因甚至不使用AuctionBean类。它可能是一个问题,为什么它看不到该方法。我做得对,问题究竟在哪里?你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

我有两点建议:
1.使用singleAuction.higherBid,而不是singleAuction.getHigherBid()
2.指定查询的目标类。这是一个例子:

return entityManager.createQuery("SELECT e FROM Auction e", AuctionBean.class)
    .getResultList();