如果该列已经具有DB MySQL中的索引“MySQL”。
我还需要添加hiberante实体吗?
@NamedQuery(name = "", query = "SELECT e FROM Entity e WHERE e.value = :value ")
@Table(...
indexes = { @Index(name = "INDEX_VALUE", columnNames = { "value" })})
public class Entity {
}如果我不在实体中添加这个索引,它会影响@NamedQuery的搜索效率吗?
发布于 2022-04-08 14:37:06
@Index在架构生成中用于指定索引的创建。因此,如果您已经通过SQL脚本创建了它的索引,那么在实体中声明它不会有什么区别。
此索引不影响命名查询,因为命名查询搜索值列,但索引引用状态列。
发布于 2022-04-22 14:32:51
无论您从何处执行查询,您的查询最终都会在MySQL服务器中运行。
@Index 在创建或更新架构时(当然,当hbm2ddl配置设置为update或create时)将对您有所帮助。
因此,当数据库架构已经对列进行索引时,在实体中使用@Index并没有什么区别。
https://stackoverflow.com/questions/71798576
复制相似问题