我的提供者是:org.eclipse.persistence.jpa.PersistenceProvider
我的实体代码是:
@Entity
@NamedQueries( { @NamedQuery(name = "Bank.findAll", query = "select o from Bank o") })
@Table(name = "B_BANK")
public class Bank implements Serializable {
private final static String ID_GENERATOR = "Bank";
private Long id;
private User modifier;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = ID_GENERATOR)
@SequenceGenerator(name = ID_GENERATOR, allocationSize = 1, sequenceName = "sq_B_BANK")
@Column(name = "id")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "modifier")
public User getModifier() {
return modifier;
}
public void setModifier(User modifier) {
this.modifier = modifier;
}
}
我的测试代码只是:
entityManagerHelper = new EntityManagerHelper("Model", isAutoCommit);
List l = entityManagerHelper.getEntityManager().createQuery("select b from Bank b").getResultList();
但是在我的控制台中我有这个:
SELECT id,修饰符 FROM B_BANK SELECT id,CREATION_DATE,MODIFICATION_DATE,修饰符,创建者 FROM B_USER WHERE (id = ?) bind => [2]
因此,似乎 JPA 查询了我在其上放置 fetch = FetchType.LAZY 的用户!我想知道为什么 JPA 也查询用户。任何帮助,将不胜感激。