Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在加载数据时检查Hibernate是否正在使用数据库索引_Java_Hibernate_Indexing_Orm_Sybase - Fatal编程技术网

Java 如何在加载数据时检查Hibernate是否正在使用数据库索引

Java 如何在加载数据时检查Hibernate是否正在使用数据库索引,java,hibernate,indexing,orm,sybase,Java,Hibernate,Indexing,Orm,Sybase,我正在使用Java、Sybase ASE和Hibernate 4.1.2。在我的项目中,从表中加载一些数据需要相当长的时间。我怀疑Hibernate查询没有使用索引。但我不知道如何验证它是否在表上使用索引?请帮助我想您可以在entity类中指定索引。这通常是通过外键列完成的 例如:如果您有如下外键列 public class Project { ... @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name="user")

我正在使用Java、Sybase ASE和Hibernate 4.1.2。在我的项目中,从表中加载一些数据需要相当长的时间。我怀疑Hibernate查询没有使用索引。但我不知道如何验证它是否在表上使用索引?请帮助

我想您可以在entity类中指定索引。这通常是通过外键列完成的

例如:如果您有如下外键列

public class Project
{
...
    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name="user")
    private User user;
...
}
您可以指定一个索引,如下所示

@javax.persistence.Table(name = "project")
@Table(appliesTo = "project" ,indexes = @Index(columnList = "user", name = "user_index"))
@Entity
public class Project
{
 ..
注意:您也可以为非外键列指定和索引


希望这能有所帮助。

您需要启用查询加载,获取您感兴趣的查询,并检查e提供给您的内容

您还需要考虑绑定参数值,因为这也可能会影响执行计划的生成


您也可以,JPA还定义了一个数据库。

您必须发布一些代码,并创建表语句,以获得关于这个问题的一些说明。备选方案:尝试DBA论坛