2017-07-05 4 views
0

springデータjpaとの双方向の1対多の関係を構築しようとしていますが、@onetomanyで注釈が付けられたリストは常に1要素を返します。ここでSpring jpa onetomanyは1つの要素のみを返します

は私のエンティティのためのコードは(セッターとゲッターは省略)である:

@Entity 
@Table(name = "sdk_sdk") 
public class SDKEntity { 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Integer id; 

private String version; 

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "sdk") 
@OrderBy("order ASC") 
private List<SDKFileEntity> fileEntities; 
} 

そして第二の実体:

@Entity 
@Table(name = "sdk_file") 
public class SDKFileEntity { 
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Integer id; 
private String fileType; 
private Integer sdkId; 

public SDKFileEntity() { 
} 

@ManyToOne 
@JoinColumn(name = "id", insertable = false, updatable = false) 
private SDKEntity sdk; 

私はsdkIdが対応manytooneマッピングを持ってしようとしていますSDKEntityクラスのid。

ここで、ファイルのサイズが1である
SDKEntity entity=repository.findOne(foo); 
List<SDKFileEntity> files=entity.getFileEntities(); 

、私が持っている:私は春のリポジトリを使用してsdkEntityからsdkfilesを取得しようとするたびに は、リストのサイズは、例えばので、常に1

です2番目の要素を取得するためにデータベースから最初の要素を削除します。

+0

のようなデータベースのカラム名で書かれたように、実際の列名でなければなりません疑わしいその一つだけ 'SDKFileEntity' –

+0

sdkenttityの要素を追加する方法を示します – xyz

+0

エンティティを作成する前に要素が既にテーブルに入っていました –

答えて

0

コードのこの部分は

@ManyToOne 
@JoinColumn(name = "id", insertable = false, updatable = false) 
private SDKEntity sdk; 

名=「ID」がある可能性があります。

@JoinColumn(name = "VISIT_ID", referencedColumnName = "ID") 
    @ManyToOne 
    private Visit visitId; 
+0

実際には私のデータベースのidと呼ばれています。 –

+0

次に、SDKFileEntityテーブルのIDについて – Ashish451

+0

同じ、idとも呼ばれる –

関連する問題