我正在尝试映射超类LendingLine和子类Line以及BlockLine之间的继承关系。LendingLine与Lending存在ManyToOne关联。
当我尝试从数据库获取没有继承的LendingLines时,它可以正常工作,关联也可以工作。但是当我添加继承时,Lending中的lendingLines为空。我也无法从具有继承的数据库中获取任何LendingLines。
有人能帮助我吗?
(对于糟糕的解释,我感到抱歉)
提前感谢!
LendingLine:
当我尝试从数据库获取没有继承的LendingLines时,它可以正常工作,关联也可以工作。但是当我添加继承时,Lending中的lendingLines为空。我也无法从具有继承的数据库中获取任何LendingLines。
有人能帮助我吗?
(对于糟糕的解释,我感到抱歉)
提前感谢!
LendingLine:
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE")
@DiscriminatorValue(value="Line")
@Table(name = "LendingLine")
public class LendingLine {
...
public LendingLine(){}
@ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER, targetEntity=Lending.class)
@JoinColumn(name = "LendingId")
private Lending lending;
...
借贷:
@Entity
@Table(name = "Lending")
public class Lending {
...
public Lending(){}
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER, mappedBy = "lending")
private List<LendingLine> lendingLines;
...
BlockDate:
@Entity
@DiscriminatorValue(value = "BlockLine")
public class BlockLine extends LendingLine {
public BlockLine(){
}
}
LendingLineRepository:
这个类只从数据库中读取数据,因为数据库是由另一个应用程序(C#)创建的,其中对象被添加到了数据库中。
public class LendingLineRepository extends JpaUtil implement LendingLineRepositoryInterface {
@Override
protected Class getEntity() {
return LendingLine.class;
}
@Override
public Collection<LendingLine> findAll() {
Query query = getEm().createQuery("SELECT l FROM LendingLine l");
System.out.println(query.getResultList().size());
return (Collection<LendingLine>) query.getResultList();
}
Table LendingLine:
@OneToMany
映射中需要@JoinColumn
注释?就我所知,您正在Lending
和LendingLine
之间建立双向关系。为什么在@OneToMany
映射中需要@JoinColumn
注释? - ujuluLending
中是否缺少@Entity
注解? - ujululendingLines List
的代码? - nik