Hibernate 在SQL查询中休眠多通关联和联接表

Hibernate 在SQL查询中休眠多通关联和联接表,hibernate,criteria,inner-join,many-to-one,Hibernate,Criteria,Inner Join,Many To One,我有一个关于Hibernate Manytone协会的问题 我有一个如下映射的产品实体: public class Product { @Id @DocumentId @Column(name = "PRODUCT_ID", columnDefinition = "integer") @Index(name = "PRODUCT_ID_IDX") private Long id; @Column(name = "SALE_PRICE") @Index(name = "PRODUCT_PRICE

我有一个关于Hibernate Manytone协会的问题

我有一个如下映射的产品实体:

public class Product {
@Id
@DocumentId
@Column(name = "PRODUCT_ID", columnDefinition = "integer")
@Index(name = "PRODUCT_ID_IDX")
private Long id;

@Column(name = "SALE_PRICE")
@Index(name = "PRODUCT_PRICE_IDX")
private Double salePrice;
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CATEGORY_ID", nullable = true)
@Index(name = "PRODUCT_ID_CATEGORY_IDX")
private ProductCategory category;
}
那个么你们怎么能看出我们和ProductCategory表之间的关系呢。我们将FK存储在产品表中。 当我创建按特定类别和价格选择产品的查询时,我有下一个SQL:
选择
此产品ID为PRODUCT1\u 9\u 1\u,
此uu.BUY u URL为BUY2 9 1 u,
该类别ID为15类9类1类,
该货币为货币,
此图片URL为图片4图片9图片1图片,
这张图片显示的是图片中的图片,
这个长描述为长6长9长1长,
此名称为NAME9\u 1\u,
该等级为9级1级,
这个零售价等于零售价,
此销售价格与销售价格相同,
本次装运为SHIPPING9\u 1\u,
这个简短的描述是SHORT12,9,1,,
本文件将UPC命名为UPC9\U 1,
此视图被视为视图9\u 1,
类别1。类别ID为类别1\u 10\u 0,
类别1。名称为名称10\u 0\u,
1类额定值为10级0级,
cat1视图作为视图10\u 0\u,
第1类\u.可见为可见10\u 0\u
从…起
这个产品
内连接
产品类别1类
在该类别上,类别ID=cat1类别ID
哪里
(
这个售价在?和之间?
和中的cat1类别ID(
?
)
) 
订购人
这个名称是asc限制吗?偏移量?

我接下来的问题是:如何避免两个表的内部联接:Product和ProductCategory

我的标准DAO代码:
criteria.createAlias(“类别”、“类别”);
criteria.add(Restrictions.conjunction())
.add(限制。介于(“售价”、“价格低”、“价格高”)
.添加(限制,在(“类别id”,categoryID))

谢谢。

电话线

criteria.createAlias("category", "cat");
确切的意思是:创建与类别实体的内部联接

只用

criteria.add(
    Restrictions.conjunction()
        .add(Restrictions.between("salePrice", priceLow, priceHigh))
        .add(Restrictions.in("category.id", categoryIds)));