У меня есть этот класс
@javax.persistence.Entity
@Table(name = "OD_STOCK")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name = "OD_STOCKID")
@XmlRootElement(name = "Stock")
public class Stock extends Entity {
@ManyToOne(fetch = FetchType.LAZY)
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumnsOrFormulas({@JoinColumnOrFormula(formula = @JoinFormula(value = "STOCKGROUPCODE", referencedColumnName = "GD_CODEID")),
@JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "GD_CODETYPE", value = "'STOCKGROUP'"))})
private StockGroup stockGroup;
}
Но когда я загружаю Stock, stockGroup всегда загружается ... Ленивая загрузка не работает.
Я вижу в журнале SQL этот SELECT для загрузки stockGroup
select
stockgroup0_.GD_CODEID as GD_CODEI2_52_0_,
stockgroup0_.GD_CODETYPE as GD_CODET1_52_0_,
stockgroup0_.DBUSERINS as DBUSERIN3_52_0_,
stockgroup0_.DBUSERUPD as DBUSERUP4_52_0_,
stockgroup0_.AU_USERIDINS as AU_USERI5_52_0_,
stockgroup0_.AU_USERIDUPD as AU_USERI6_52_0_,
stockgroup0_.INSERTDATE as INSERTDA7_52_0_,
stockgroup0_.MODIFYDATE as MODIFYDA8_52_0_,
stockgroup0_.VERSION as VERSION9_52_0_,
stockgroup0_.GD_CODE as GD_CODE10_52_0_,
stockgroup0_.ISACTIVE as ISACTIV11_52_0_,
stockgroup0_.PRINTORDER as PRINTOR12_52_0_,
stockgroup0_.XMLGD_CODE as XMLGD_C13_52_0_
from
GD_CODE stockgroup0_
where
stockgroup0_.GD_CODEID=?
and stockgroup0_.GD_CODETYPE=?
and stockgroup0_.GD_CODETYPE='STOCKGROUP'
И что еще хуже, когда GD_CODEID равен NULL в OD_STOCK, выполняется SELECT для загрузки объекта, когда SELECT не требуется, поскольку GD_CODEID равен NULL
GD_CODEID привязан к NULL, когда GD_CODEID равен NULL ..
Почему? Что я могу сделать?