我有一个@Embeddable
类:
@Embeddable
@Table(name="MY_TABLE")
public class MyTable {
@ManyToOne(fetch=FetchType.LAZY, optional=false)
@JoinColumn(name="my_other_id")
private MyOtherEntity myOtherEntity;
...
}
@Entity
@Table(name="MY_OTHER_TABLE")
@DiscriminatorColumn(name="DISC", discriminatorType=DiscriminatorType.STRING)
public abstract class MyOtherEntity {
...
}
@Entity
@DiscriminatorValue("A")
public class MyOtherEntityA extends MyOtherEntity {
...
}
@Entity
@DiscriminatorValue("B")
public class MyOtherEntityB extends MyOtherEntity {
...
}
与LAZY
提取类型一样,我希望MyOtherEntity
仅是代理,而不是实际的类初始化的类别。但是Hibernate仍在发出查询以获取所有列(除了MyOtherEntity
的所有者类别MyTable
调用getMyTable()
。
添加Hibernate中建议的optional=false
:一对一的懒惰加载,可选= false和Hibernate ManytoOne fetchype.lazy不起作用吗?没有帮助。而且,这堂课不是在Hibernate中所建议的。还有其他原因如何懒惰,没有预期的工作?
指定@proxy(lazy = true(
@Proxy(lazy=true)
@Embeddable
@Table(name="MY_TABLE")