首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >素数面狭缝行id == null

素数面狭缝行id == null
EN

Stack Overflow用户
提问于 2015-12-21 11:40:42
回答 1查看 385关注 0票数 0

我有一个可以列出餐馆对象的工作数据表。我想删除/编辑所选的那些,但是当我选择一个时,会出现以下异常:

代码语言:javascript
运行
复制
org.springframework.dao.InvalidDataAccessApiUsageException: The given id must not be null!

这张桌子是:

代码语言:javascript
运行
复制
    <h:form id="restaurantForm">
    <p:dataTable var="restaurant"
            value="#{restaurantLazyBean.lazyDataModel}" paginator="true"
            rows="10" rowsPerPageTemplate="5,10,50" id="carTable" lazy="true"
            selectionMode="single" selection="#{RestaurantEditBean.selected}"
            rowKey="#{restaurant.id}"
            paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}">
            <p:ajax event="rowSelect"
                listener="#{RestaurantEditBean.onRowSelect()}"/>

            <p:column headerText="ID">
                <h:outputText value="#{restaurant.id}" />
            </p:column>
        </p:dataTable>

    </h:form>

现在,所有in都会出现在表中,但是在选择时会出现异常。我试着按照素颜的例子做每件事。但他们甚至没有rowKey属性。

这是豆子,如果是相关的话。

代码语言:javascript
运行
复制
@Named("RestaurantEditBean")
@ViewScoped
@EJB(name = "ejb.RestaurantService", beanInterface = RestaurantService.class)
public class RestaurantEditBean {
@EJB
private RestaurantService restaurantService;
private RestaurantDTO selected;

public void onRowSelect(SelectEvent event) {
    selected = ((RestaurantDTO) event.getObject());
}

public RestaurantService getRestaurantService() {
    return restaurantService;
}

public void setRestaurantService(RestaurantService restaurantService) {
    this.restaurantService = restaurantService;
}

public RestaurantDTO getSelected() {
    return selected;
}

public void setSelected(RestaurantDTO selected) {
    this.selected = selected;
}

}

基本面: 5.3 JSF: 2.2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-21 16:54:49

我发现我犯了一个严重的错误。在我的LazyDataModel中,我必须重写一个函数。

代码语言:javascript
运行
复制
@Override
    public RestaurantDTO getRowData(String rowKey) {
        Long id = Long.parseLong(rowKey);
        return restaurantService.findById(id);
        }

这个问题是由前一个Long.getLong(rowKey)引起的,并且返回null。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34394846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档