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) 求大神支招,感激不尽!!


...全文
133 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Scorpio_ya 2015-08-24
没有大神知道吗?顶一下贴!
回复
Scorpio_ya 2015-08-24
急!求助,顶贴!
回复
Scorpio_ya 2015-08-21
引用 1 楼 a2349830 的回复:
MemberFavoriteProduct 是一个中间表? 有没有实体对象?
是的,中间表,没有建立实体对象。
回复
a2349830 2015-08-21
MemberFavoriteProduct 是一个中间表? 有没有实体对象?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-08-21 03:59
社区公告
暂无公告