1

我有一个由 hibernate4 映射的简单对象并像这样获取它们

Criteria crit = session.createCriteria(Entity.class);
crit.add(Restrictions.in("id", ids));
System.out.println(crit.list().size());

它获取大约 2000 个对象。纯 SQL 查询大约需要 100ms。没有连接等。但在休眠状态下大约需要 4 秒。所以或映射/缓存等需要很多时间。有没有办法加快速度?

你有什么建议?

实体看起来像这样。我已启用 sql 日志记录,但没有选择 ManyToOne 急切

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorFormula("type")
public abstract class Entity extends ResourceEntity implements Cloneable {
    @Id
    @NotNull
    @GeneratedValue(strategy = GenerationType.AUTO)
    @JsonProperty(value = "id")
    private Integer id;

    @NotNull
    private Type type; //Enum

    private Date expirationDate;

    @NotNull
    private boolean shared;

    private int orderID;

    @ManyToOne
    private MaappedEntity me;

    private String strinvar;

mh,即使使用普通的 sql 查询,休眠似乎也很慢

SQLQuery sql = session.createSQLQuery("select * from Entity");
System.out.println(sql.list().size());

在此处输入图像描述

4

0 回答 0