我有两个实体类一:
@Table(name = "package")
public class Package {
@Id
@Column(name = "package_id", insertable = false, nullable = false)
private Long packageId;
@Column(name = "timestamp", nullable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date timestamp;
@Column(name = "name", nullable = false)
private String name;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "queue_id",foreignKey=@ForeignKey(name = "package_queue_id_fk"))
private Queue Queue;
@Column(name = "file_number", nullable = true)
private Integer fileNumber;
和
@Table(name = "queue")
public class Queue {
@Id
@Column(name = "queue_id", insertable = false, nullable = false)
private Integer queue;
@Column(name = "description", nullable = true)
private String description;
@Column(name = "name", nullable = false)
private String name;
@OneToMany(mappedBy = "Queue", fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.REFRESH })
@MapKeyColumn(name = "package_id")
private Set<Package> packages;
我想根据 package.name 和 package.queue.queue_id 找到文件编号列表
所以目前我只有一个条件(名称),它看起来像这样:
public List<Integer> getAllFileNumbers(String fileName, Integer queueId) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Integer> query = cb.createQuery(Integer.class);
Root<Package> package = query.from(package.class);
query.select(package.get("fileNumber")).where(cb.equal(package.get("name"), fileName));
return em.createQuery(query).getResultList();
}
任何人都可以帮我添加另一个,除此之外,还要记住该值必须来自另一个实体。
慕的地6264312
相关分类