我有这些课程:
@Entity
public class Invoice implements Serializable {
@Id
@Basic(optional = false)
private Integer number;
private BigDecimal value;
//Getters and setters
}
@Entity
public class InvoiceItem implements Serializable {
@EmbeddedId
protected InvoiceItemPK invoiceItemPk;
@ManyToOne
@JoinColumn(name = "invoice_number", insertable = false, updatable = false)
private Invoice invoice;
//Getters and setters
}
当我运行此查询时:
session.createQuery("select i from InvoiceItem i").list();
它执行一个查询以从InvoiceItem中选择记录,如果我有10000个发票项,则会生成10000个其他查询以从每个InvoiceItem中选择发票.
我认为如果所有记录都可以在一个sql中获取,那将会好得多.实际上,我觉得很奇怪为什么它不是默认行为.
那么,我该怎么做呢?