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();
}