Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 尝试按实体JPA+进行筛选时获取重复值;弹簧数据_Spring Boot_Jpa - Fatal编程技术网

Spring boot 尝试按实体JPA+进行筛选时获取重复值;弹簧数据

Spring boot 尝试按实体JPA+进行筛选时获取重复值;弹簧数据,spring-boot,jpa,Spring Boot,Jpa,我有一个订单实体和一个产品实体,我将它们定义如下 import java.sql.Timestamp; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Gene

我有一个
订单
实体和一个
产品
实体,我将它们定义如下

import java.sql.Timestamp;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "orders")
public class Orders {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "order_id", updatable = false, nullable = false)
    private Long orderId;

    @Column(name = "order_details")
    @NotEmpty(message = "*Please provide order details")
    private String orderDetais;
    
    @Column(name = "order_date")
    private Timestamp orderDate;
    
    @Column(name = "amount")
    private Double amount;
    
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "order_products", joinColumns = @JoinColumn(name = "order_id"), inverseJoinColumns = @JoinColumn(name = "product_id"))
    private List<Product> products;


}
每个餐厅都有一套独特的产品。订单信息不包含餐厅信息,因此我必须间接查询产品,然后确定订单是从哪个餐厅下的。(此处假设
用户
指餐厅)

我已经创建了我的
订单存储
,如下所示

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import com.keto.login.model.Orders;
import com.keto.login.model.Product;

@Repository
public interface OrdersRepository extends JpaRepository<Orders, Long> {
    List<Orders> findByProductsIn(List<Product> productList);
}
import java.util.List;
导入org.springframework.data.jpa.repository.JpaRepository;
导入org.springframework.stereotype.Repository;
导入com.keto.login.model.Orders;
导入com.keto.login.model.Product;
@存储库
公共接口OrdersRepository扩展了JpaRepository{
List findByProductsIn(List productList);
}
现在,我需要用餐厅id获取特定餐厅的所有订单。因此,在我的服务中,我编写了一段代码,如下所示

    Product example = Product.builder().restaurant(User.builder().id(user_id).build()).build();
    List<Product> productList = productRepository.findAll(Example.of(example));
    List<Orders> ordersList=ordersRepository.findByProductsIn(productList);
Product-example=Product.builder().restaurant(User.builder().id(User_id.build()).build();
List productList=productRepository.findAll(Example.of(Example));
List ordersList=ordersepository.findByProductsIn(productList);
当订单中有多个产品时,orderList发回的订单数量与订单中的产品数量相同。我应该如何确保我的方法返回唯一的订单

我不确定这些信息是否足够,所以请让我知道是否有更多的信息可以帮助

    Product example = Product.builder().restaurant(User.builder().id(user_id).build()).build();
    List<Product> productList = productRepository.findAll(Example.of(example));
    List<Orders> ordersList=ordersRepository.findByProductsIn(productList);