当前位置: 首页 > 知识库问答 >
问题:

Hibernate ManyToOne关联和连接表在SQL查询

姚飞昂
2023-03-14

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

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

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;
}

所以你怎么能看到我们与ProductClass表的关系。和FK我们存储在产品表中。当我创建查询,选择产品的特定类别和价格我有下一个this_:选择this_PRODUCT_IDPRODUCT1_9_1_,this_BUY_URLBUY2_9_1_,this_CATEGORY_IDCATEGORY15_9_1_,this_CURRENCY9_1_,this_IMAGE_URLIMAGE4_9_1_,this_。INSTOCKINSTOCK9_1_,this_LONG_DESCRIPTIONLONG6_9_1_,CATEGORY_ID。名称NAME9_1_,this_。评级为RATING9_1_,this_。RETAIL_PRICERETAIL9_9_1_,this_SALE_PRICESALE10_9_1_,this_。运输SHIPPING9_1_,this_。SHORT_DESCRIPTIONSHORT12_9_1_,this_。UPCUPC9_1_,this_。视图为VIEWS9_1_,cat1_SQLCATEGORY1_10_0_,cat1_。名称为NAME10_0_,cat1_。评级为RATING10_0_,cat1_。视图为VIEWS10_0_,cat1_。this_this_内连接PRODUCT_CATEGORYcat1_VISIBLE10_0_可见。CATEGORY_ID=cat1_CATEGORY_ID(this_。SALE_PRICE在?和?和cat1_之间。CATEGORY_ID按this_ ( ? ) ) 顺序排列。名称asc限制?偏移量?

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

我的标准DAO代码:<代码>标准。createAlias(“类别”、“类别”);标准添加(限制。连接()。添加(限制。介于(“salePrice”、“priceLow”、“priceHigh”)之间)。添加(限制(“类别id”,类别id)))

谢谢

共有1个答案

赵经国
2023-03-14

那条线

criteria.createAlias("category", "cat");

确切地说:创建与类别实体的内连接。

就用

criteria.add(
    Restrictions.conjunction()
        .add(Restrictions.between("salePrice", priceLow, priceHigh))
        .add(Restrictions.in("category.id", categoryIds)));
 类似资料:
  • 问题内容: 在我的数据库中有4个关系表,想加入它们以获取总价值…例如,我有朋友,家人,关注者和熟人,并希望加入这些以获得“ ALL”值。 表格格式如下: 朋友们 家庭 下列的 熟人 是联接所有4个表的正确查询… 基本上,我想从其中id =我的id的所有四个表中检索“ following”(跟随)值 问题答案: 如果 所有表 都具有与Friends表的链接,则当前查询仅列出结果。我相信您正在寻找类似

  • 问题内容: 遇到了一些严重的问题,无法解决如何针对我的情况建立适当的查询。.可以肯定的是,这取决于正确地连接表,但是经过大量的谷歌搜索之后,我似乎无法弄清楚… 我有下表。 和… 和… 希望我能够正确解释这一点。.我在Main中有一堆记录,我需要从中获取信息。.我需要能够对WhenDate和TypeID进行过滤。我还需要从链接到StatusID的状态表中获取StatusText。 问题: 次要表链接

  • 一、本功能说明 可以自动批量的将内容里面的关键词语加上超链接 二、子功能导航 1.添加连接 2.管理连接 三、功能详解 1.添加规则 1).如何进入本功能 导航栏 选择扩展 -> 菜单栏 选择关联连接 -> 添加关联连接 2).界面解释 点击后弹出如下界面 界面详述 1). 关联连接名称: 您可以需要添加连接的关键字 2). 关联连接网址: 该关键字对应的网址 2.管理连接 1).如何进入本功能

  • 我需要连接来自两个不同表的数据,如下所示。仅使用一个sql查询就可以做到这一点吗?如果“key”和“name”在两个表上,那么它们是相同的。表1中的“状态”始终为“-”,表2中的“T”。此外,两个表上的“名称”和“comp”都匹配(例如:Name3-C和Name4-B)<我尝试过“联合”和“加入”,但还没有解决办法! 表1 表2 结果应该是。。。 提前谢谢!

  • 问题内容: 第一次问有关Stack Overflow的问题…令人惊讶的资源,但是有一点让我作为SQL的新手感到困惑。 我有三个表,我想获取与鲍勃的学生相关的所有导师的姓名。 表1:老师 表2:学生 表3:MENTOR_RELATIONSHIPS 表4:导师 我想查询一下鲍勃学生的所有导师。因此,所有学生的导师 在这种情况下,肖恩就是结果。 我知道这与Joins有关,还是可以使用常规查询找到它??

  • 主要内容:1.内连接,2. 左连接 - LEFT JOIN,3. 右连接 - RIGHT JOIN,4. 全连接 - FULL JOIN顾名思义,连接(JOIN)表示要结合一些东西。 在SQL的情况下,连接(JOIN)表示“组合两个或更多表”。 在SQL中,子句用于组合数据库中两个或多个表的记录。 SQL JOIN的类型 内连接 - INNER JOIN 左连接 - LEFT JOIN 右连接 - RIGHT JOIN 全连接 - FULL JOIN 假设有以下几张表,EMPLOYEE 表的结构