我有一个关系映射为@ManyToOne(fetch = FetchType.EAGER)
的实体,在某些情况下我想覆盖此提取模式。
我尝试过使用Criteria的setFetchMode
,但它没有用。我也尝试使用FetchProfiles
,但也没有运气。
我尝试编写SQL查询并使用setEntity
和setRoot
方法,这样我的实体就会被自动填充,但即使如此,它也会急切地加载关系。
作为一个黑客,我还想创建第二个实体来扩展第一个,所以我覆盖了getter以替换@ManyToOne
注释,但是当我这样做时,它会导致以下异常:
org.hibernate.MappingException: Repeated column in mapping for entity: XXX column: AAA (should be mapped with insert="false" update="false")
不幸的是我正在处理遗留代码而我无法更改注释类型,因为它会影响整个应用程序LazyInitializationException
。
有什么想法吗?