休眠 @Query 不产生所需的输出

时间:2021-02-21 18:05:48

标签: java mysql spring-boot hibernate

我正在编写一个查询以返回状态为 False 并按订单日期排序的所有订单。 这里基于日期的排序工作正常,但 orderStatus.cancelled=false 不起作用。无论是否取消,我都会收到所有订单。

存储库

public interface OrdersRepository extends JpaRepository<Orders,Integer> {

    @Query("select o from Orders o where o.orderStatus.cancelled=false order by o.orderDate")
    List<Orders> getAllOrders();
}

订单

@Entity
public class Orders {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "order_id")
    private int id;

    @OneToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER)
    @JoinColumn(name = "order_id")
    @MapsId
    private OrderStatus orderStatus;
}

订单状态

@Entity
public class OrderStatus {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "order_id")
    private int id;
    .....
    .....
    private boolean cancelled;
}

2 个答案:

答案 0 :(得分:0)

改变

o.orderStatus.cancelled=false 

o.orderStatus.cancelled='false'o.orderStatus.cancelled is false

答案 1 :(得分:0)

更改方法的名称,例如:

public interface OrdersRepository extends JpaRepository<Orders,Integer> {

    @Query("select o from Orders o where o.orderStatus.cancelled=false order by o.orderDate")
    List<Orders> getAllNonCancelledOrders();
}

getAllOrders()JpaRepository 也使用的关键字。