Java Hibernate条件子类属性

Java Hibernate条件子类属性,java,hibernate,Java,Hibernate,我有这样一个Invoice类: Invoice { int id; Set<Attachment> attachments;} 以及状态类: Status { int id; String desc;} 我想构建一个方法,在给定附件的status元素的情况下,返回所有相关的发票 这是我的方法: public List<Invoice> findbyCriteria(Invoice criteria, int init, int pageSize, St

我有这样一个Invoice类:

Invoice {
int id;
Set<Attachment> attachments;}
以及状态类:

Status {
int id;
String desc;}
我想构建一个方法,在给定附件的status元素的情况下,返回所有相关的发票

这是我的方法:

    public List<Invoice> findbyCriteria(Invoice criteria, int init,
    int pageSize, String orderBy, String ascDesc) {


    Criteria c = getSession().createCriteria(Invoice.class).
    add(Example.create(criteria));
    if(criteria.getAttachment() !=null && criteria.getAttachment().size() > 0)
    c.createCriteria("attachments").add(Example.create((Set<Attachment>)criteria.getAttachments()));    

return c.list();
公共列表findbyCriteria(发票标准,int init,
int pageSize、字符串orderBy、字符串ascDesc){
条件c=getSession().createCriteria(Invoice.class)。
添加(示例.创建(标准));
if(criteria.getAttachment()!=null&&criteria.getAttachment().size()>0)
c、 createCriteria(“附件”).add(例如.create((Set)criteria.getAttachments());
返回c.list();
但在创建示例期间,这将返回ClassCastException:

Example.create((Set<Attachment>)criteria.getAttachments()));
Example.create((Set)criteria.getAttachments());
怎么了

谢谢!

试试这个:

List<Invoice> invoices  = sess.createCriteria(Invoice.class)
                .add(what you need to filter)
                .createCriteria("attachments").add(what you need to filter)//like  Restrictions.like("name", "F%")
                .createCriteria("status").add(what you need to filter).list();
List invoices=sess.createCriteria(Invoice.class)
.add(需要筛选的内容)
.createCriteria(“附件”).add(需要过滤的内容)//like限制。like(“name”,“F%”)
.createCriteria(“状态”).add(需要过滤的内容).list();
试试这个:

List<Invoice> invoices  = sess.createCriteria(Invoice.class)
                .add(what you need to filter)
                .createCriteria("attachments").add(what you need to filter)//like  Restrictions.like("name", "F%")
                .createCriteria("status").add(what you need to filter).list();
List invoices=sess.createCriteria(Invoice.class)
.add(需要筛选的内容)
.createCriteria(“附件”).add(需要过滤的内容)//like限制。like(“name”,“F%”)
.createCriteria(“状态”).add(需要过滤的内容).list();

发票
和附件
之间是否存在任何关系映射?发票和附件之间是否存在任何关系映射?