Как я могу получить набор результатов, возвращаемых из хранимой процедуры в Spring MVC? - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь получить результаты хранимой процедуры с использованием Spring Data JPA. Я точно не знаю, как получить набор результатов.

Если я устанавливаю возвращаемое значение равным void, он вызывает хранимую процедуру, и консоль показывает следующее:

[http-nio-8080-exec-3] DEBUG org.hibernate.loader.Loader  - Result set row: 0
[http-nio-8080-exec-3] DEBUG org.hibernate.loader.Loader  - Result row: 
[http-nio-8080-exec-3] DEBUG org.hibernate.loader.Loader  - Result set row: 1
[http-nio-8080-exec-3] DEBUG org.hibernate.loader.Loader  - Result row: 
[http-nio-8080-exec-3] DEBUG org.hibernate.loader.Loader  - Result set row: 2
[http-nio-8080-exec-3] DEBUG org.hibernate.loader.Loader  - Result row: 

Мне нужен список строк результатов. вот мой код ниже:

Customer.java

@Entity
@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(name = "same_address", procedureName = "same_address")
})
public class Customer implements Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
    private String address;

    //default empty constructor required by hibernate
    public Customer() {

    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "Customer [id=" + id + ", name=" + name + ", email=" + email + ", address=" + address + "]";
    }

}

CustomerRepository.java

public interface CustomerRepository extends JpaRepository<Customer,Long>{   
    @Procedure(name = "same_address")
    void sameAddress();
}

CustomerService.java

@Service
public class CustomerService {

@Autowired
private CustomerRepository repo;

public void callProcedure() {
    System.out.println(1);
    repo.sameAddress();
    System.out.println(2);
}
}

Процедура MySQL:

CREATE DEFINER=`root`@`localhost` PROCEDURE `same_address`()
BEGIN
select * from customer WHERE Address = "Karachi";
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...