Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 如何使查询vie Spring数据和一对多?_Java_Spring_Spring Boot_Spring Data - Fatal编程技术网

Java 如何使查询vie Spring数据和一对多?

Java 如何使查询vie Spring数据和一对多?,java,spring,spring-boot,spring-data,Java,Spring,Spring Boot,Spring Data,我有几个实体: 任务: 用户: 但它不起作用。如何进行查询以获得已完成任务的用户?以下问题应该可以解决 public interface UserRepository extends CrudRepository<User, Long> { List<User> findAllByTask_Done(boolean status); } 你可以尝试这样的方法,但应该有更好的方法!: public interface UserRepository extends

我有几个实体:

任务:

用户:


但它不起作用。如何进行查询以获得已完成任务的用户?

以下问题应该可以解决

public interface UserRepository extends CrudRepository<User, Long> {
    List<User> findAllByTask_Done(boolean status);
}

你可以尝试这样的方法,但应该有更好的方法!:

public interface UserRepository extends CrudRepository<User, Long> {
    @Query("select u from User u where 0 = (select count(t) from u.tasks t where t.done = 'false')");
    List<User> getAllByTasksDoneTrue();
}
一个次要的评论是t.done='false'可能应该更改


我知道有些数据库根本不支持布尔类型,因此条件取决于此done属性在数据库中的实际存储方式。

Stream getAllByTasksDoneIsTrue;工作?这就是你要找的我想@Barry我不认为soYes,我明白了。但是我想在没有sql和数据库依赖的情况下完成它。
public interface UserRepository extends CrudRepository<User, Long> {
    Optional<Stream<User>> getAllByTasksDoneTrue();
}
public interface UserRepository extends CrudRepository<User, Long> {
    List<User> findAllByTask_Done(boolean status);
}
public interface UserRepository extends CrudRepository<User, Long> {
    @Query("select u from User u where 0 = (select count(t) from u.tasks t where t.done = 'false')");
    List<User> getAllByTasksDoneTrue();
}