我對春季數據查詢有問題。我想要接收用戶已賦予角色的用戶(列表)(角色在列表中)並且此用戶(列表)的assignedOrders爲空或此訂單處於給定狀態(State爲枚舉類)。春季數據異常查詢
我想出了這樣的查詢:
List<User> findAllByRoleContainsAndOrdersAssignedStateIsNullOrOrdersAssignedStateEquals(State state,Role role);
,但它並不在所有的工作。這是複雜的,我從來沒有創建過這樣的查詢。你能幫助我嗎?非常感謝 !
編輯: 的一段代碼:
@Entity
public class User implements Persistable {
...........
@Column(name = "ROLES")
@Enumerated(EnumType.STRING)
@ElementCollection(targetClass = Role.class)
private List<Role> role;
..........
@OneToMany(fetch = FetchType.LAZY, mappedBy = "driver")
private List<Order> ordersAssigned = new ArrayList<>();
}
@Entity
public class Order implements Persistable {
...........
@JoinColumn(name = "DRIVER_ID")
@ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.PERSIST)
private User driver;
@Column(name = "STATE")
@Enumerated(EnumType.STRING)
private State state;
.............
}
我覺得最好使用'@ Query'。 – Alex78191