У меня есть класс DocMovement вроде этого:Hibernate - org.hibernate.QueryException: не удалось разрешить свойство:
@Entity
@Table(name = "DOC_MVMNT")
public class DocMovement {
@Id
@GeneratedValue
@Column(name = "MVMNT_ID")
private int mvmnt_id;
@ManyToOne
@JoinColumn(name = "BARCODE")
public DocMaster docMaster;
// other fields and getters setters
}
Класс DocMaster является чем-то вроде этого:
@Entity
@Table(name="DOC_MASTER")
public class DocMaster {
@Id
@NotNull
@Column(name = "BARCODE")
private String barcode;
@Column(name = "DOC_NO")
private String docNo ;
@Column(name="DOC_TYPE")
private String docType;
@Column(name="STATUS")
private String status;
// other fields and getters setters
}
Когда я пытаюсь запустить следующий код:
Criteria criteria = session.createCriteria(DocMovement.class,"documentMovement");
criteria.add(Restrictions.eq("documentMovement.recipientDetail.empId", empId));
criteria.add(Restrictions.eq("documentMovement.isCurrent", true));
criteria.add(Restrictions.ne("documentMovement.docMaster.status",FMSConstants.CLOSED_STATUS));
criteria.add(Restrictions.ne("documentMovement.docMaster.status",FMSConstants.DISPOSED_STATUS));
List<DocMovement> documentsHeld = (List<DocMovement>) criteria.list();
тогда я получаю следующее исключение:
[org.hibernate.QueryException: could not resolve property:
docMaster.status of: com.fms.persistence.DocMovement] with root cause
org.hibernate.QueryException: could not resolve property:
docMaster.status of: com.fms.persistence.DocMovement
Есть другие случаи, когда я пытаюсь выполнить запрос с использованием критериев, как показано выше, запрос выполняется нормально, но я не могу понять, что я делаю неправильно в этом случае. Я тоже пытался использовать fager fetch, раньше я не использовал псевдоним, поэтому я также попытался использовать псевдоним.
Пожалуйста, помогите мне решить проблему !!!
это работает, Thanx a lott, но я не понимаю, почему, потому что я не делаю этого, как вы предлагали в других случаях, но он отлично работает. Почему в этом случае я должен был дать псевдоним. –