我对春季数据查询有问题。我想要接收用户已赋予角色的用户(列表)(角色在列表中)并且此用户(列表)的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