Spring Data JPA确实找到了OneToone映射中的关联表中的数据



我正在使用Spring Data JPA。我有2个表,如下:

投资和投资type。投资与投资type之间存在一对一的关系。

我的投资课程如下:

@Entity
public class Investment {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int investmentId;
@NotNull(message = "Cannot be empty")
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "investment_type_id")
private InvestmentType investmentType;
@NotNull(message = "Cannot be empty")
private String investmentNumber;
 //getter and setter methods

}

我的InvestmentType类如下:

@Entity
public class InvestmentType {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Integer investmentTypeId;
private String investmentTypeName;
//getter and setter methods
}

我的投资重点如下:

public interface InvestmentRepository extends JpaRepository <Investment, Integer>{
}

我的控制器具有以下代码:

List<Investment> investments = investmentRepo.findAll();
    for(Investment investment:investments){
        logger.info(" Got investment with id "+investment.getInvestmentId());
        if(investment.getInvestmentType() != null){
            logger.info("Investment Type is "+investment.getInvestmentType().getInvestmentTypeName());
        }
        else{
            logger.info("null investment type ");
        }
    }

但是,for循环总是输出"零投资类型"

因此,似乎Findall方法没有从InvestmentType表中检索数据映射的数据。

我做错了什么吗?我是否需要做一些明确的事情才能通过映射从关联表中检索数据?

一对一的关联是唯一一个无法代理的联想。add提取类型懒惰并在相关表柱上使用mappedby。

父表

@NotNull(message = "Cannot be empty")
@OneToOne(fetch = FetchType.LAZY, optional = false)
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "investment_type_id")
private InvestmentType investmentType;

相关表

@Id @GeneratedValue(strategy=GenerationType.AUTO)
@OneToOne(mappedBy = "investment")
private Integer investmentTypeId;

最新更新