2
我在我的java项目中使用Hibernate。我有以下实体结构:访问惰性加载字段的ID时出现LazyInitialization异常
@Entity
@Table(name = "car")
public class Car implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "engine_id", nullable = false)
private Engine engine;
}
现在,当我从数据库加载Car
实体,显然Engine
实体将不会被加载,因为它是延迟加载的领域,但对于Engine
的ID(主键)会加载。
现在,如果我做car.getEngine()。getId(),那么它会抛出LazyInitialization异常。由于Id部分已经加载,为什么getId()会抛出异常?
请发布例外,如果你得到一个...另外,可能http://stackoverflow.com/questions/9250414/hibernate-getid-is-loading-the-object-even-though-it-is-lazy解释你的问题(如果你的引擎类也注释了你的字段) – MikeN 2013-03-28 10:47:18