我有一个由 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());