Hibernate 来自多个表的Model.addAttribute

Hibernate 来自多个表的Model.addAttribute,hibernate,jsp,Hibernate,Jsp,我有实体卡余额。当我想在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

我有实体卡余额。当我想在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;

我不知道下一步该怎么办。该方法应该返回什么?如何在控制器中使用它?

您选择的方法不正确

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();
}

最后我们使用了DTO模式
@Entity
class BalanceHistory {

  @ManyToOne
  private CardBalance card;

}