通常のクエリを作成するときに、Int
やVarchar2
などの属性が熱心に遅れて取得されるかどうかを知りたいです。JPAは非エンティティ属性を熱心に取得しますか?
@Entity
@Table(name = "ROOM")
public class Room implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name = "room_id")
private Integer id;
@Column(name = "number")
private String number;
@Column(name = "capacity")
private Integer capacity; //Will this be fetched eagerly???
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "building_id")
private Building building;
...
...
...
}
基本的には:
Room room = getRoomById(5); // select room from Room room where room.id = 5;
Integer roomCap = room.getCapacity(); //Will this create another query?
それとも、すでにroom
オブジェクトの内部になりますか?
「@ Basic」というアノテーションは何を表していますか?これがそのタイプを表すものであり、JPAはJavaタイプのものであり、一部のDBタイプではありません。 http://www.datanucleus.org/products/accessplatform_5_1/jpa/annotations.html#Basic –
IntとVarcharの場合、私は整数と文字列がJavaであることを意味しました。プレーン属性、非エンティティ。 –