Весна JPA "И" Методы, а не Нуль - PullRequest
0 голосов
/ 19 ноября 2018

У нас были нелепые проблемы с использованием AND в CrudReposity. Все, что я хочу сделать, это найти две пустые вещи и отобразить их.

    public interface StudentRepository extends CrudRepository<Student, Integer>{

    List<Student> findByItemAIsNotNullAndItemBIsNotNull();
}

Когда я запускаю это, кажется, что И запускается как ИЛИ (я пробовал оба), поэтому в одном из них показываются все значения, которые равны нулю.

Любая помощь будет оценена

1 Ответ

0 голосов
/ 19 ноября 2018

Ваш код верен, возможно проблема в другом разделе. В противном случае вы можете увидеть этот код. Это может помочь вам. Здесь я пропустил служебный слой, хотя его только для проверки.

package com.example.stack;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Data{
    @Id
    @GeneratedValue
    Integer id;
    String itemA;
    String itemB;

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getItemA() {
        return itemA;
    }
    public void setItemA(String itemA) {
        this.itemA = itemA;
    }
    public String getItemB() {
        return itemB;
    }
    public void setItemB(String itemB) {
        this.itemB = itemB;
    }

}

Класс репозитория

package com.example.stack;

import java.util.List;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;


public interface TestRepository extends CrudRepository<Data, Integer>{

  List<Data> findByItemAIsNotNullAndItemBIsNotNull();

}

Контроллер CLass

package com.example.stack;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/test")
public class TestController {

    @Autowired
    TestRepository repo;

    @GetMapping
    public List<Data> getTest()
    {
        return (List<Data>) repo.findByItemAIsNotNullAndItemBIsNotNull();

    }

}

База данных :

test database

Ответ :

Postman Response

...