У меня есть Bill и Bill_Details с onetomany и manytoone Relationship. Мне нужна помощь в получении Билла Списка.как вернуть критерии Отличный результат
Pojo
Билл
@OneToMany(cascade={CascadeType.ALL},fetch = FetchType.EAGER)
@JoinColumn(name = "bill_id")
private Set<BillDetails> billDetails = new HashSet<BillDetails>();
BillDetails
@ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
@JoinColumn(name = "bill_id")
private Bill billId;
Я использую проекции принять значение Билла из списка.
DaoHibernate
@Transactional
public List<Bill> getbillDetailsByBillId(String billId) {
Criteria cr = null;
try {
cr = getSession().createCriteria(Bill.class,"bill")
.createAlias("bill.billDetails","billDetails")
.setProjection(Projections.projectionList()
// I tried .setProjectionProjections.distinct(Projections.projectionList()
.add(Projections.property("billNo"),"billNo")
.add(Projections.property("billDetails.amount"),"billDetails.amount")
.add(Projections.property("billDetails.rate"),"billDetails.rate"))
.add(Restrictions.eq("id", billId))
.setResultTransformer(new AliasToBeanNestedResultTransformer(Bill.class));
} catch (Exception e) {
System.out.println("Get bill DetailsByBillId Error----------"+e);
e.printStackTrace();
}
System.out.println(cr.list().size());
return cr.list();
}
Примечание:
-> Билл таблица содержит Однорядовый
-> таблица BillDetails содержит четыре строки для этого BillId
Мои критерии Query Возвращает четыре объекта вместо одного Объект. Я также пробовал с отличной функцией.
Ожидаемый выход:
Мне нужен один объект, который содержит BillDetails объекты (4 значения). ie.I объясняется образец формата Json ниже
{billNo:231,
billDetails[{amount:100,rate:1}{amount:200,rate:2}
{amount:300,rate:30}{amount:400,rate:4}] }
Как получить это с помощью Hibernate критериев запроса? Пожалуйста, помогите
Большое спасибо: -) It Works Fine .. –
Мне нужно достичь путем проецирования Поскольку у меня есть проблемы в JSON "на com.google.gson.Gson $ FutureTypeAdapter.write (Gson.java:899) \t на com.google.gson.internal .bind.TypeAdapterRuntimeTypeWrapper.write (TypeAdapterRuntimeTypeWrapper.java:68) ". с помощью прогнозов ошибка исчезла. Пожалуйста, помогите с этой ошибкой. –