我有实体Card_Balance。当我想在JSP上显示它时我写了方法
Card_Balance find_by_id{
String que = "SELECT * FROM Card_Balance WHERE Card_Balance.CARD_ID="+id;
SQLQuery sqlQuery = session.createSQLQuery(que).addEntity(Card_Balance.class);
...
}
并在控制器中使用它。现在我想显示JSP表使用两个实体。 我写了sql
SELECT FROM BALANCE_HIST BH
INNER JOIN EVENTS EV ON
BH.DATE_EVENT=EV.PAYMENT_TIME
WHERE BH.CARD_ID ="+id;
我不知道接下来该做什么。该方法应该返回什么?如何在控制器中使用它?
答案 0 :(得分:0)
您选择的方式不正确。
CardBalance findById(Long id) {
return (CardBalance)session.get(CardBalance.class, id);
}
List<BalanceHistory> getHistoryByCardId(Long cardId) {
String hql = "from BalanceHistory history where history.card.id = :cardId";
Query query = session.createQuery(hql);
query.setParameter("cardId", cardId);
return (List<BalanceHistory>)query.list();
}
这只是一个例子。方法getByCardId()
会为BalanceHistory
的卡片返回cardId
的列表。
我假设BalanceHistory
@Entity
class BalanceHistory {
@ManyToOne
private CardBalance card;
}