2

我想使用 Criteria API 通过从搜索值中获取输入来选择实体。一个文档可以有多个收件人。收件人有许多子类

@Entity
public class Document implements Serializable {
  @OneToMany(mappedBy="document")
  private List<Recipient> recipients = new ArrayList<Recipient>();


@Entity
public class RecipientAccount extends Recipient {
  String name;

如何选择具有特定名称的 ReciepientAccount 的所有文档?我需要搜索所有子类并将它们与 OR 连接起来。有没有优雅的方法?

问候米

4

1 回答 1

6

以下应该有效:

Criteria c = session.createCriteria(Document.class, "document");
c.createAlias("document.recipients", "recipient");
c.add(Restrictions.in("recipient.class", Arrays.asList(SubClass1.class, 
                                                       SubClass2.class,
                                                       SubClass3.class)));
c.add(Restrictions.eq("recipient.name", theName));
于 2012-06-18T14:13:42.367 回答