1

次のような請求書クラスがあります。

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

アタッチメント クラス:

Attachment {
int id;
Status 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()));

なにが問題ですか?

ありがとう!

4

1 に答える 1

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();
于 2013-09-17T09:03:59.210 に答える