0
私はSpring Data JPAを使用しています。私は次のように2つのテーブルを持っています:Spring Data JPAはfindAllがonetooneマッピングで関連するテーブルからデータを取得しますか?
投資と投資_タイプ。投資と投資の間には1対1の関係があります。
次のように私の投資クラスは次のとおりです。
@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
}
次のように私のInvestmentRepositoryがある:
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メソッドがOneToOneマッピングが存在しているにInvestmentTypeテーブルからデータを取得しないことが表示されます
を「ヌル投資タイプ」を出力します。
何か間違っていますか?マッピングを使用して関連するテーブルからデータを取得するために明示的に何かする必要がありますか?
感謝。残念ながら、それは私のためには機能しませんでした。 "@OneToOne(mappedBy =" investment ")"を追加すると、アプリケーションが起動しなくなります。 – Reshma