springside多对多关联的表怎么样查询呢

J2EE 码拜 9年前 (2016-03-20) 1147次浏览
有三张表
book表:
id
title
author
bookCat表:
id
title
memo
book_Cat表:
book_id 外键
cat_id外键

	@ManyToMany(cascade = CascadeType.PERSIST)
	@JoinTable(name = "book_cat", joinColumns = @JoinColumn(name = "book_id"), inverseJoinColumns = @JoinColumn(name = "cat_id"))
	public Set<BookCat> getCats() {
		return cats;
	}
//这个是book实体类中的多对多代码

问一下怎么通过cat_id查找到book表的内容?

	/**
	 * 创建动态查询条件组合
	 * 
	 * @param userId
	 * @param searchParams
	 * @return
	 */
	private Specification<Book> buildSpecification(Long catId,
			Map<String, Object> searchParams) {
		Map<String, SearchFilter> filters = SearchFilter.parse(searchParams);
		filters.put("user.id", new SearchFilter("user.id", Operator.EQ, catId));
		Specification<Book> spec = DynamicSpecifications.bySearchFilter(
				filters.values(), Book.class);
		return spec;
	}
//这个是本人看的例子 查询全部  本人不理解的是"user.id"是什么  假如本人改成cats就报错   有没有办法通过这个方法查询呢

在线等  急!  谢谢

解决方案

100

bookCat 实体类
@JoinTable(name = “book_Cat”, joinColumns = @JoinColumn(name = “cat_id”, nullable = false), inverseJoinColumns = @JoinColumn(name = “book_id “, nullable = false))
private List<book> books;
通过book_cat中间表关联
hql=”select b.title from book b left  join on books where id=?”
hql里面全是实体名字 不是表名

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明springside多对多关联的表怎么样查询呢
喜欢 (0)
[1034331897@qq.com]
分享 (0)