使用Hibernate Sql语法实现常规Join操作

在DAO层实现两张表的JOIN操作, 并自定义把返回的数据
  • 定义返回类(需要在构造函数中进行初始化, 后续需要使用)
public class SqlQueryResult {
	public SqlQueryResult(
			int checkState,
			long checkDate,
			String legalName,
			int hotelID,
			int bodyID,
			String password
	) {
		setCheckState(checkState);
		setCheckDate(checkDate);
		setLegalName(legalName);
		setPassword(password);
		setHotelbodyID(bodyID);
		setHotelID(hotelID);
	}
	public int checkState;
	public long checkDate;
	public String legalName;
	public String password;
	public int	hotelID;
	public int	bodyID;
	
}
  • Dao层编写HQL语句

Hibernate不认识 JOIN…ON…, 需要把JOIN换成逗号’ , ’ , 然后直接通过WHERE来筛选

public interface HotelBodyDao extends JpaSpecificationExecutor<HotelBody>,  JpaRepository<HotelBody, Integer> {

	@Query(value = "SELECT 
	                NEW myproject.response.SqlQueryResult(hc.CheckState, hc.CheckDate, hc.LegalName, hc.HotelID, hc.BodyID, hb.Password) 
	                FROM HotelBody AS hb , HotelCheck AS hc 
	                WHERE hb.HotelID = ?1 AND hc.HotelID = ?1 ", 
	                nativeQuery = false)
	List<SqlQueryResult> findhotel(int nHotelID);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值