2013-09-17 5 views
1

У меня есть класс счета-фактуры, как это:критерии Hibernate подкласс атрибута

Invoice { 
int id; 
Set<Attachment> attachments;} 

Класс Attachment:

Attachment { 
int id; 
Status status;} 

И, Класс Статус:

Status { 
int id; 
String desc;} 

Я хочу построить метод, который задает элемент статуса, приложения, возвращает все связанные счета.

Это мой метод:

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(); 

Но это возвращает ClassCastException при создании примера:

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

Что не так?

Спасибо!

+0

Есть ли связь между отображением '' Invoice' и Attachment'? – erencan

ответ

1

попробовать это:

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(); 
Смежные вопросы