Java JPARepository';对@MappedSuperClass的基类的findAll查询只返回基类的条目

Java JPARepository';对@MappedSuperClass的基类的findAll查询只返回基类的条目,java,hibernate,jpa,Java,Hibernate,Jpa,我有一个JPA Mapped超类,如下所示: @MappedSuperclass public abstract class Foo extends AbstractPersistable<Long> { private Status status; @ManyToOne(cascade=CascadeType.ALL) private User owner; 及 现在,当我将一些数据保存在Bar或Blub类型的对象中时,我希望myRepository.findAll

我有一个JPA Mapped超类,如下所示:

@MappedSuperclass
public abstract class Foo extends AbstractPersistable<Long> {       
private Status status;
@ManyToOne(cascade=CascadeType.ALL)
private User owner;

现在,当我将一些数据保存在Bar或Blub类型的对象中时,我希望myRepository.findAll实际从MappedSuperClass返回苹果酒或啤酒以及状态和所有者。相反,它只返回苹果酒或啤酒-子类的属性

只是我的推理有错误,还是我完全遗漏了什么

这是我的假设:

public interface BarRepository extends JpaRepository<Bar, Long> { 
}
公共接口BarRepository扩展了JpaRepository{
}
我的BarService中的findAll()就是这样“实现”的:

@Inject
私人禁止禁止;
公共可引用findAll(){
return barrespository.findAll();
}

我的Blub子类也有这两个。我们非常感谢您的任何提示,如果我错过了任何最佳实践,如果您能再次让我走上正确的轨道,我将非常高兴。

那么,它能做些什么呢?字段为空?数据库中有什么?例如,我创建了一个新的所有者,它是一个用户对象,使用
Bar。setOwner(owner)
并亲自连接到数据库,我发现JPA创建了一个包含所有Foo和Bar列名的大表。在owner\u id列中有一个1。然而,
findAll()
只返回Bar的列。如何访问所有列值?bar.getStatus()和bar.getOwner()。向我们展示用于获取Bar实例的Java代码,以及用于访问信息和进行诊断的代码。如果您获得的是一个大表,而不是“BLUBFOO”和“BARFOO”表,那么您所描述的可能有问题。您所描述的是否正确,或者其他文件/地图是否会以某种方式被提取和使用?您为苹果酒+啤酒插入了哪些值,它们是否与用户一样正确插入?尝试删除PrimaryKeyJoinColumn,除非它用于未显示的内容,例如辅助表。
@Entity
@Table(name="BLUBFOO")
@EqualsAndHashCode(callSuper=true)
@PrimaryKeyJoinColumn(name="id", referencedColumnName="id")
public @Data class Blub extends Foo {
private String cider;
public interface BarRepository extends JpaRepository<Bar, Long> { 
}
@Inject
private BarRepository barRepository;
public Iterable<Bar> findAll() {
  return barRepository.findAll();
}