JPA - 继承具有相同字段名称的类会导致保存

时间:2015-04-27 11:51:08

标签: java mysql spring jpa spring-data-jpa

我们有一个基类--Base,有3个继承类 - ChildA,ChildB,ChildC。 所有类都是jpa实体,使用歧视列。

ChildA和ChildB都有一个名称相同的字段,而ChildC没有:

private Long longField;(可以为空)

因此,当我们尝试将一个ChildA实例保存到数据库时:

this.childARepository.save(new ChildA(...));

我们得到以下例外:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'longField' in 'field list'

我们可以想到一些变通办法,但在这种情况下,非变数非常好:

1)将longField放在Base中 - 没有意义,因为ChildC不需要它。

2)为ChildA&创建另一个基类。 ChildB - 从抽象的角度来看没有意义。

3)在ChildA& amp;给出一个不同的名字。 ChildB - 试过它并且它有效,但我们不愿意这样做,因为它具有相同的含义......

这个问题还有其他解决方案吗?也许我们缺少的东西? 谢谢!

0 个答案:

没有答案