我们有一个基类--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 - 试过它并且它有效,但我们不愿意这样做,因为它具有相同的含义......
这个问题还有其他解决方案吗?也许我们缺少的东西? 谢谢!