Вы пробовали это ....
Если вы хотите подать документы, используя свойства Comment, используйте метод Query setProperties (obj). (При условии, что Комментарий закодирован в соответствии со стандартными соглашениями JavaBean.)
Query q = session.createQuery(
"select doc from Document as doc join doc.comments as com where com.createdBy=:createdBy and com.createdDate=:createdDate");
Comment comment = new Comment();
comment.setCreatedBy("Me");
comment.setCreatedDate(new Date());
q.setProperties(comment);
List<Document> docs = q.list();
15,16. Советы и хитрости
EDIT:
session.createQuery("select doc from Document as doc join doc.comments as com where com.name like :name and com.createdDate >= :minDate and com.createdDate <= :maxDate");
Все комментарии, созданные мной ....
Comment c = new Comment();
Calendar cal = GregorianCalendar.getInstance();
cal.add(Calendar.MONTH, -2010);
c.setMinDate(cal.getTime());
c.setMaxDate(new Date());
c.setCreatedBy("ME");
q.setProperties(c);
Все комментарии, созданные мной вчера ...
Comment c = new Comment();
c.setMinDate(${yesterDay});
c.setMaxDate(${yesterDay});
c.setCreatedBy("ME");
q.setProperties(c);
Все комментарии, созданные (кем-либо) между toDate to fromDate ...
Comment c = new Comment();
c.setMinDate(${toDate});
c.setMaxDate(${fromDate});
c.setCreatedBy("%");
q.setProperties(c);
Вам нужно будет изменить Comment.java, чтобы этот работал ...
public class Comment {
/* these are not persistent properties, just search fields */
private Date minDate;
private Date maxDate;
public Date getMinDate() {
return minDate;
}
public void setMinDate(Date minDate) {
this.minDate = minDate;
}
public Date getMaxDate() {
return maxDate;
}
public void setMaxDate(Date maxDate) {
this.maxDate = maxDate;
}
............
}