Hibernate的QBC查询语句问题

Scorpio_ya 2015-08-21 03:59:51
有三张表分别关系如下:
Member表(会员表,属性:id主键,等等)
Product表(产品表,属性:id主键,等等)
MemberFavoriteProduct表:(会员关注产品表)

create table MemberFavoriteProduct(
favorite_members int references Member(id) not null,
favorite_products int references Products(id) not null,
primary key(favorite_members, favorite_products)
)


实体:
Member实体:

private Set<Product> favoriteProducts = new HashSet<Product>();
.........
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "MemberFavoriteProduct", joinColumns = @JoinColumn(name = "favorite_members"), inverseJoinColumns = @JoinColumn(name = "favorite_products"))
public Set<Product> getFavoriteProducts() {
return this.favoriteProducts;
}

public void setFavoriteProducts(Set<Product> favoriteProducts) {
this.favoriteProducts = favoriteProducts;
}


Product实体:

private Set<Member> favoriteMembers = new HashSet<Member>();
..........
@ManyToMany(mappedBy = "favoriteProducts", fetch = FetchType.LAZY)
public Set<Member> getFavoriteMembers() {
return this.favoriteMembers;
}

public void setFavoriteMembers(Set<Member> favoriteMembers) {
this.favoriteMembers = favoriteMembers;
}

根据以上实体映射,所以没有建立MemberFavoriteProduct实体

需求:想根据会员去查它关注的有哪些产品,dao方法:

Criteria criteria = this.getSession().createCriteria(Product.class);
criteria.createAlias("favoriteMembers","x", JoinType.INNER_JOIN);
criteria.add(Restrictions.eq("x.favoriteMembers", member));//member为参数对象
.........


x为别名,但是打印出的语句是
select count(*) as y0_ from Product this_ inner join MemberFavoriteProduct favoriteme3_ on this_.id=favoriteme3_.favorite_products inner join Member x1_ on favoriteme3_.favorite_members=x1_.id where favoriteme3_.favorite_members.id = ?


问题:它把member对象给取别名为x了,不是MemberFavoriteProduct对象取名为x,如何才能得到MemberFavoriteProduct的别名,或者怎么去设置它的别名,求出结果??(还是用QBC) 求大神支招,感激不尽!!


...全文
179 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Scorpio_ya 2015-08-24
  • 打赏
  • 举报
回复
没有大神知道吗?顶一下贴!
Scorpio_ya 2015-08-24
  • 打赏
  • 举报
回复
急!求助,顶贴!
Scorpio_ya 2015-08-21
  • 打赏
  • 举报
回复
引用 1 楼 a2349830 的回复:
MemberFavoriteProduct 是一个中间表? 有没有实体对象?
是的,中间表,没有建立实体对象。
a2349830 2015-08-21
  • 打赏
  • 举报
回复
MemberFavoriteProduct 是一个中间表? 有没有实体对象?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧