小编Jul*_*ien的帖子

JPA:继承 - 在生成的SQL中未考虑Discriminator值

我尝试使用这个映射:

@Entity
@Table(name="ecc.\"RATE\"")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="DISCRIMINATOR", discriminatorType= DiscriminatorType.STRING)
public abstract class Rate extends GenericBusinessObject {
...
}

@Entity
@DiscriminatorValue("E")
public class EntranceRate extends Rate { 
 @ManyToOne
 @JoinColumn(name = "\"RATES_GRID_ID\"")
 protected RatesGrid ratesGrid;
...
}


@Entity
@Table(name="ecc.\"RATES_GRID\"")
public class RatesGrid extends GenericBusinessObject {
 /** */
 @OneToMany(mappedBy = "ratesGrid",  targetEntity = EntranceRate.class, fetch=FetchType.LAZY)
 private List<EntranceRate> entranceRates;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试entranceRatesratesGrid对象访问我的列表时,我收到此错误:

Object with id: 151 was not of the specified subclass: com.ecc.bo.rate.EntranceRate (loaded object was of wrong class class com.ecc.bo.rate.AnnualRate)
Run Code Online (Sandbox Code Playgroud)

看看生成的sql,我在where子句中找不到"discriminator ="的痕迹.我究竟做错了什么 …

java sql inheritance hibernate jpa

5
推荐指数
1
解决办法
6792
查看次数

标签 统计

hibernate ×1

inheritance ×1

java ×1

jpa ×1

sql ×1