2016-12-12 4 views
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テーブルからデータを取得しないことが表示されます

を「ヌル投資タイプ」を出力します。

何か間違っていますか?マッピングを使用して関連するテーブルからデータを取得するために明示的に何かする必要がありますか?

答えて

0

1対1の関連付けはプロキシできない唯一のものです。フェッチタイプを遅延させ、関連するテーブルの列に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; 
+0

感謝。残念ながら、それは私のためには機能しませんでした。 "@OneToOne(mappedBy =" investment ")"を追加すると、アプリケーションが起動しなくなります。 – Reshma

関連する問題