Reputation: 8400
I'm trying to get 5 properties from the Database. I'm able to get all the 4 exception the OneToMany relation.
Dua.class
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "DUA_DATA_FIL_ID")
@LazyCollection(LazyCollectionOption.TRUE)
@Fetch(FetchMode.SELECT)
private List<DuaDataFileYearVO> duaDataFileYearList = new ArrayList<DuaDataFileYearVO>();
Hibernate Criteria
public DuaDataFileShipListObj getDuaInfoForShipping(String duaNumber, DisseminatorListObj disseminatorCodeListObj,
int index) {
DuaDataFileShipListObj dataFileShipList = null;
List<DuaDataFileShipVO> dataFileShipVO = new ArrayList<DuaDataFileShipVO>();
List<DuaDataFileVO> dataFileVOs = new ArrayList<DuaDataFileVO>();
Session session = null;
try {
session = getSessionFactory().openSession();
Criteria criteria = session.createCriteria(DuaDataFileVO.class, "dataFile");
criteria.add(Restrictions.eq("duaNum", duaNumber))
// .add(Restrictions.eq("duaDataFileYearList.duaDataFileId", 677L))
.add(Restrictions.in("dataDisseminatorCode", disseminatorCodeListObj.getDisseminatorCodes()));
criteria.createAlias("dataFile.refDataFileExtractingPCTVO", "refDataFileExtractingPCTVO")
.createAlias("dataFile.refDataFileVO", "refDataFileVO")
.createAlias("dataFile.duaDataFileYearList", "duaDataFileYearList").list();
criteria.setProjection(Projections.projectionList()
.add(Projections.property("duaDataFileId"), "duaDataFileId")
.add(Projections.property("dataDisseminatorCode"), "dataDisseminatorCode")
.add(Projections.property("refDataFileExtractingPCTVO"), "refDataFileExtractingPCTVO")
.add(Projections.property("refDataFileVO"), "refDataFileVO"));
// criteria.setFirstResult(0);
criteria.setMaxResults(index);
criteria.setResultTransformer(Transformers.aliasToBean(DuaDataFileVO.class));
dataFileVOs = criteria.list();
Upvotes: 0
Views: 46
Reputation: 722
From first glance at your question it looks like you are trying to get property: duaDataFileYearList
. In your projectionList I don't see this property included, while the other four are.
Update: Another way you could accomplish this, is to grab the entire DuaDataFileVO
object you want, and then get the DuaDataFileVO.duaDateFileYearList
property from there, instead of trying to get the entity by the properties.
Upvotes: 1