【发布时间】:2017-05-31 17:12:23
【问题描述】:
我对 Spring 数据查询有疑问。我想接收用户(列表),其中用户已赋予角色(角色在列表中)并且此用户(列表)的分配订单为空或此订单处于给定状态(状态为枚举类)。
我想出了这样的查询:
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比较好。
标签: java spring-data