小编Ivá*_*nos的帖子

如何使用 JPQL 从 SELECT 操作中获取第一行?

我有一个包含一些测试数据的数据库,我想使用它们的属性 DATE 对它们进行体面的排序,并且只使用所有测试中的第一个。我的意思是,相当于 JPQL 中 SQL 的 TOP 1。

谢谢你的帮助!

java spring jpa jpql spring-boot

9
推荐指数
4
解决办法
1万
查看次数

如何转换成三元运算符?

我有一个if-then-else语句,我想将其转换为三元运算符,但是我不知道为什么我不能这样做。代码如下:

public Movie create(NewMovieDTO newMovieDTO) {
    Movie movieForSaving = NewMovieDTOToMovie.map(newMovieDTO);
    List<Actor> actorsForSaving = new ArrayList<Actor>();

    movieForSaving.getActors().forEach((actor) -> {
        Optional<Actor> actorInDatabase = actorService
            .findByNameAndSurname(actor.getName(), actor.getSurname());

        if(actorInDatabase.isPresent()) {
            actorForSaving.add(actorInDatabase.get());
        } else {
            actorForSaving.add(actor);
        }
    });
    movieForSaving.setActors(actorForSaving);
    return movieRepository.save(movieForSaving);
}
Run Code Online (Sandbox Code Playgroud)

三元运算符的代码是:

public Movie create(NewMovieDTO newMovieDTO) {
    Movie movieForSaving = NewMovieDTOToMovie.map(newMovieDTO);
    List<Actor> actorsForSaving = new ArrayList<Actor>();

    /*Line 1*/ movieForSaving.getActors().forEach((actor) -> {
        Optional<Actor> actorInDatabase = actorService
            .findByNameAndSurname(actor.getName(), actor.getSurname());
        /*Line 2*/(actorInDatabase.isPresent()) ? actorForSaving.add(actorInDatabase.get()) : actorForSaving.add(actor);
    /*Line 3*/});

    movieForSaving.setActors(actorForSaving);
    return movieRepository.save(movieForSaving);
}
Run Code Online (Sandbox Code Playgroud)

IDE给出以下错误:

第1行:此表达式的目标类型必须是功能接口

第2行:此行有多个标记

            - Syntax …
Run Code Online (Sandbox Code Playgroud)

java spring ternary-operator java-8

6
推荐指数
1
解决办法
122
查看次数

标签 统计

java ×2

spring ×2

java-8 ×1

jpa ×1

jpql ×1

spring-boot ×1

ternary-operator ×1