ばかげた質問でごめんなさい。製品と注文のテーブル(多対多の関係)があり、ユーザーテーブルもあります。そして今、user_idと特別なフィールド「order_satus」によって製品数を取得したいと思います。2つのクエリで特別な基準で注文を取得し、次に商品のサイズを順番に取得することができます。しかし、これはまったく最適ではありません。JDBCTemplateを使用すると、多くの結合を実行し、クエリを1つだけ取得します。
これが私のエンティティです:
@Entity
@Table(name = "shop.order")
public class Order {
@Id
@Column(name = "order_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long orderId;
private long user_id;
@Column(name = "databegin")
private Date dateBegin;
@Column(name = "dataend")
private Date dateEnd;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", insertable = false, updatable = false)
private User user;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "order_product", joinColumns = { @JoinColumn(name = "order_id") }, inverseJoinColumns = { @JoinColumn(name = "product_id") })
private List<Product> products;
}
製品エンティティ
 @Entity
    @Table(name = "product")
    public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int product_id;
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "order_product", joinColumns = { @JoinColumn(name = "product_id") }, inverseJoinColumns = { @JoinColumn(name = "order_id") })
    private List<Order> order;
    public List<Order> getOrder() {
        return order;
    }
    public void setOrder(List<Order> order) {
        this.order = order;
    }
    @Column
    @NotBlank
    private String name;
    @Column
    @Max(value = 250)
    private String descr;
    @Column
    @Max(value = 250)
    private String manufacturer;
    @Column
    private Double price;
    @Column
    private Byte[] barcode;
    @Column
    private Byte[] picture;
    @ForeignKey(name = "category_id")
    private int category_id;