Как получить данные с помощью Rest API при весенней загрузке из нескольких таблиц - PullRequest
0 голосов
/ 05 апреля 2020

Привет, я новичок в кодировании и пытаюсь создать API отдыха при весенней загрузке, который выбирает данные из 4 таблиц в базе данных, которая использует один запрос для возврата набора результатов. Как я могу это сделать.

1 Ответ

1 голос
/ 05 апреля 2020

Вы можете использовать собственный запрос SQL, но упомянутый вариант использования может быть легко достигнут с помощью HQL. Перед этим давайте используем правильные сопоставления аннотаций для ассоциации ManytoMany:

@Entity
@Table(name = "order_detail")
public class OrderDetail {

     @Id
     @GeneratedValue(strategy = GenerationType.AUTO)
     private Integer id;


     @ManyToOne
     @JoinColumn(name="purchased_By")
     private user PurchasedBy;


     @ManyToMany
     @JoinTable(
       name="order_detail_productlist",
       joinColumns=@JoinColumn(name="order_detail_id", referencedColumnName="id"),
       inverseJoinColumns=@JoinColumn(name="productlist_id", referencedColumnName="id"))
      private Set<Product> productlist = new HashSet<Product>();

Product

@Entity
@Table(name ="product")
public class Product implements Serializable {

      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private Integer id;

      @NotNull(message = "Product name must not be null")
      @NotEmpty
      @Column(name = "name", nullable = false)
      private String name;


      @ManyToOne
      @JoinColumn(name="category_id")
      private Category category;

      @ManyToMany(mappedBy = "productlist")
      private List<OrderDetail> orderDetail =new ArrayList<OrderDetail>();
public final static String product_ordered ="Select p from Product p Join p.orderDetail od Where od.id = :id";

@Query(product_ordered)
public List<Product> findById(@Param("id") int id);

для получения дополнительной информации здесь

...