我正在编写一个查询以返回状态为 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;
}
答案 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
也使用的关键字。