来自几个表的Model.addAttribute

时间:2017-05-19 21:02:37

标签: hibernate jsp

我有实体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;

我不知道接下来该做什么。该方法应该返回什么?如何在控制器中使用它?

1 个答案:

答案 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;

}