我正在使用Spring应用程序中的JpaRepository接口来映射没有外键的表。
我的pom.xml包含:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-tools</artifactId>
<version>4.3.2.Final</version>
</dependency>所以,我使用Hibernate。
我的实体看起来是这样的
@Entity
@Table(name = "TABLE_NAME")
@NamedQuery(name = "CbmAnomalyDectOutput.findAll", query = "SELECT c FROM EntityName c")
public class EntityName implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "ID_GENERATOR", sequenceName = "MY_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ID_GENERATOR")
private long id;
@Column(name = "ANOMALY_CLASS")
private String anomalyClass;
@Column(name = "ANOMALY_PROB")
private BigDecimal anomalyProb;
@Column(name = "ANOMALY_SEVERITY")
private BigDecimal anomalySeverity;诸若此类!
我创建了方法findByAnomalyClass(String anomalyClass)。
该表包含17,050条记录,查询返回其中约3,000条记录。
但是..。花了4分钟!
与SQL查询相比,执行时间要短很多倍。
编辑:我激活了一个非常冗长的日志,我注意到对象org.hibernate.loader.Loader是问题所在!它用相同的时间戳记录2048行,然后记录其他145行和其他行。
这是关键的部分。从2048年的RESULTSET移动到2049年,整个执行时间变得非常长!
有什么建议吗?
发布于 2020-04-07 17:40:28
https://stackoverflow.com/questions/61085775
复制相似问题