У меня есть этот метод в JPARepository:
@Query("SELECT e FROM Request e JOIN FETCH e.products JOIN FETCH e.productiveShifts WHERE e.id = :id ")
Request getRequestById(@Param("id") int id);
Это Pojo на заказ:
import com.jfoenix.controls.datamodels.treetable.RecursiveTreeObject;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.Hibernate;
import javax.persistence.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Set;
@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name = "iutp_requests")
public class Request {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne
private Customer customer;
@ManyToOne
private User user;
private Date creationDate = new Date();
@ElementCollection
private Set<ProductGood> products;
@ElementCollection
private Set<ProductiveShift> productiveShifts;
@Override
public String toString(){
if(id == 0)
return "Ungespeicherter Auftrag";
return "#" + id + " - " + customer.getSurname() + " " + customer.getName() + " vom " + new SimpleDateFormat("dd.MM.yyyy").format(creationDate);
}
}
Теперь, когда я пытаюсь использовать getRequestById, запрос возвращает значение NULL. Но моя таблица содержит запрос с указанным идентификатором. Так почему мой запрос все еще возвращает ноль? Мой синтаксис неверен?
EDIT:
Для сравнения:
@Query("SELECT e FROM Request e JOIN FETCH e.products JOIN FETCH e.productiveShifts WHERE e.customer = (:customer) ")
List<Request> getRequestsByCustomer(@Param("customer") Customer customer);
Этот запрос работает.