当前位置: 首页 > 面试题库 >

如何在多列上创建索引

易昌翰
2023-03-14
问题内容

在用户属于特定组织的情况下,我们具有以下实体关系。我的查询看起来像是“从org =:org用户选择”或“从org =:org用户输入和type
=:type选择”

我在User类上有单独的索引。由于外键html" target="_blank">元素上的索引,因此第一个查询会很好。第二个查询是否对组织和类型列要求多列索引。如果是这样,我应该如何注释以创建一个这样的索引。

@Entity 
class User {
...

@ManyToOne 
@ForeignKey
@Index
Organization org;

@Index
Type type;    
...
}

问题答案:

使用hibernate特定@Table注释可以做到这一点。从文档中:

2.4.1实体

@Table(appliesTo="tableName", indexes = { @Index( name="index1", columnNames={"column1", "column2"} ) } )
在table的列上创建定义的索引tableName。这可以应用于主表或任何辅助表。该@Tables注释允许您在不同的表适用索引。预期在@javax.persistence.Table@javax.persistence.SecondaryTable(s)发生此注释。

参考

  • hibernate注释参考指南
    • 2.4。hibernate注释扩展


 类似资料:
  • 有两个问题看起来很相似,但它们不是同一个问题:这里和这里。它们都调用的方法,例如或,我知道这会返回一个。我要问的是如何将(class)对象本身转换为。我将在下面举例说明。 构建一个示例,如下所示。 上面的应该如下所示(显然有不同的数字)。 我想做的是按列名称和采取分组(按此顺序),这样我就可以得到一个由列名称和采取构建的多索引索引,如下所示。 我如何实现这一点?如果我做了,那么是一个实例。正确的做

  • 问题内容: 我有一个CHAR(250)列用作varchar(24)列的外键。 在MySQL中,我记得我可以创建一个指定column(24)的索引,以便在最左边的24个字符上创建索引。在MS SQL Server上似乎无法实现。 我的问题是这样的: 是否可以在SQL Server 2008上使用索引视图为该列的子字符串建立索引,如果是,则它会对表的性能产生任何副作用吗? 问题答案: 您可以创建一个持

  • 问题内容: 我的下表有10个唯一的行,BookingID是包含随机数的FK。该数字不必按顺序排列。 我需要插入一个名为ID的顺序索引,该索引从1..x开始 如何在SQL Server 2005中做到这一点?我当时想写一个游标,x = x + 1,但是也许有更好的方法吗? 这是我想要的结果 问题答案: 这: …将产生: 要更新现有列,请使用:

  • 问题内容: 我使用以下代码在logstash.conf中创建索引 为了创建另一个索引,我通常在上面的代码中用另一个索引名称替换索引名称。有什么办法可以在同一文件中创建许多索引?我是ELK的新手。 问题答案: 您可以根据其中一个字段的值在索引名称中使用模式。在这里,我们使用字段的值来命名索引: 您还可以将多个输出用于同一ES主机或不同ES主机: 或者,您可能想根据某个变量将文档路由到不同的索引: 更

  • 问题内容: 为了在SQL Azure上使用Fluent NHibernate映射,我需要在每个表上都有一个聚集索引。Fluent NHibernate为多对多联接创建的默认堆表显然不这样做,因为它们没有主键。 我希望能够告诉关系的一方为其连接表创建聚簇索引,但是我不确定如何。这是我的映射的样子: 如果您需要更多信息,请告诉我! 问题答案: 我不知道Fluent是否直接支持它(如果不支持,只需包含x

  • 问题内容: 不知道在PostgreSQL 9.3+中是否可行,但是我想在非唯一列上创建唯一索引。对于像这样的表: 我想仅能[快速]查询不同的日子。我知道我可以用来帮助执行不同的搜索,但是如果不同值的数量大大少于索引覆盖的行数,这似乎会增加额外的开销。就我而言,大约30天中有1天与众不同。 我是创建关系表以仅跟踪唯一条目的唯一选择吗?思维: 并在每次插入数据时使用触发器来更新它。 问题答案: 索引只