Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CRUD存储库findById()返回值不同_Java_Spring_Crud - Fatal编程技术网

Java CRUD存储库findById()返回值不同

Java CRUD存储库findById()返回值不同,java,spring,crud,Java,Spring,Crud,在我的SpringBoot应用程序中,我使用的是Crudepo。 我发现返回值有问题:必需!=发现 GitHub: 无论将方法返回类型从Task更改为Object->IDE停止显示错误,但由于稍后验证数据类型,可能会出现问题 你知道怎么修吗?有什么提示吗 克鲁德雷波 服务 在Crudepo中创建一个方法: Task getById(Integer id); 然后在TaskService中调用此方法,您就可以开始了:在CrudePO中创建一个方法: Task getById(Integer id

在我的SpringBoot应用程序中,我使用的是Crudepo。 我发现返回值有问题:必需!=发现

GitHub:

无论将方法返回类型从Task更改为Object->IDE停止显示错误,但由于稍后验证数据类型,可能会出现问题

你知道怎么修吗?有什么提示吗

克鲁德雷波 服务
在Crudepo中创建一个方法:

Task getById(Integer id);

然后在TaskService中调用此方法,您就可以开始了:

在CrudePO中创建一个方法:

Task getById(Integer id);

然后在TaskService中调用此方法,您就可以开始了:

findById方法是return可选的,因此您可以通过get方法获取任务。您可以选择以下3种情况 未找到任务时,将出现异常:

public Task findTask(Integer id) {
    return taskRepository.findById(id).get();
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(null);
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(new Task());
}
当找不到任务时,您将得到null:

public Task findTask(Integer id) {
    return taskRepository.findById(id).get();
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(null);
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(new Task());
}
未找到任务时,您将获得一个空的新任务:

public Task findTask(Integer id) {
    return taskRepository.findById(id).get();
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(null);
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(new Task());
}
或者只返回可选对象

public Optional<Task> findTask(Integer id) {
    return taskRepository.findById(id);
}

findById方法是返回可选的,因此可以通过get方法获取任务。您可以选择以下3种情况 未找到任务时,将出现异常:

public Task findTask(Integer id) {
    return taskRepository.findById(id).get();
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(null);
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(new Task());
}
当找不到任务时,您将得到null:

public Task findTask(Integer id) {
    return taskRepository.findById(id).get();
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(null);
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(new Task());
}
未找到任务时,您将获得一个空的新任务:

public Task findTask(Integer id) {
    return taskRepository.findById(id).get();
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(null);
}
public Task findTask(Integer id) {
    return taskRepository.findById(id).orElse(new Task());
}
或者只返回可选对象

public Optional<Task> findTask(Integer id) {
    return taskRepository.findById(id);
}

我认为不需要创建getById。。。存储库bean类中的id方法,因为在SimpleParepository中已经实现了此类方法。所以你可以直接调用这个方法。 见spring官方文件:-

/*
     * (non-Javadoc)
     * @see org.springframework.data.repository.CrudRepository#findById(java.io.Serializable)
     */
    public Optional<T> findById(ID id) {

        Assert.notNull(id, ID_MUST_NOT_BE_NULL);

        Class<T> domainType = getDomainClass();

        if (metadata == null) {
            return Optional.ofNullable(em.find(domainType, id));
        }

        LockModeType type = metadata.getLockModeType();

        Map<String, Object> hints = getQueryHints().withFetchGraphs(em).asMap();

        return Optional.ofNullable(type == null ? em.find(domainType, id, hints) : em.find(domainType, id, type, hints));
    }

我认为不需要创建getById。。。存储库bean类中的id方法,因为在SimpleParepository中已经实现了此类方法。所以你可以直接调用这个方法。 见spring官方文件:-

/*
     * (non-Javadoc)
     * @see org.springframework.data.repository.CrudRepository#findById(java.io.Serializable)
     */
    public Optional<T> findById(ID id) {

        Assert.notNull(id, ID_MUST_NOT_BE_NULL);

        Class<T> domainType = getDomainClass();

        if (metadata == null) {
            return Optional.ofNullable(em.find(domainType, id));
        }

        LockModeType type = metadata.getLockModeType();

        Map<String, Object> hints = getQueryHints().withFetchGraphs(em).asMap();

        return Optional.ofNullable(type == null ? em.find(domainType, id, hints) : em.find(domainType, id, type, hints));
    }

可以使用可选的吗?可以使用可选的吗?非常感谢!我已经做了一些例子,了解了它的工作原理。非常感谢!我做了一些例子,了解了它的工作原理。