2016-10-26 11 views
1

私はSpringブートJPA with Gradleを使用しています。私は、Spring Bootの正しい構文でリレーショナルデータベースを作成することに焦点を当てたガイドを見つけるのに苦労しています。私は行くを持っていたが、私はお互いにOneToOneの関係、およびTestRunとOneToManyの関係を持っているのTestCaseエンティティとTestRunとTESTDATAエンティティをしたいSpringブートJPA/Hibernateのリレーショナルデータベースの外部キー

No property idTestCase found for type TestRun! 

このエラーが発生します。 TestRunにTestDataとTestCaseの外部キーが含まれているはずです。

何回も私は変更を加え、それがビルドしません、それはテーブルが正しく見ていない構築ない場合、これは私が作成したものです:それは私には明らかではないが、ガイドから

@Entity 
public class TestRun { 
    @Id @GeneratedValue(strategy = GenerationType.AUTO) 
    private long testRunId;   
    private Boolean result; 
    @OneToOne @JoinColumn(name="testData_id") 
    private TestData testData; 
    @ManyToOne @JoinColumn(name="testCase_id") 
    private TestCase testCase; 
} 

@Entity 
public class TestCase { 
    @Id @GeneratedValue(strategy = GenerationType.AUTO) 
    private long testCaseId; 
    private String name; 
    private String description; 
    @OneToMany(cascade=CascadeType.ALL, mappedBy="testCase",targetEntity=TestRun.class) 
    private Collection<TestRun> testRun; 
} 

@Entity 
public class TestData { 
    @Id @GeneratedValue(strategy = GenerationType.AUTO) 
    private long testDataId; 
    @OneToOne(cascade=CascadeType.ALL, mappedBy="testData",targetEntity=TestRun.class) 
    private TestRun testRun; 
} 

@JoinColumn(name=に入るものは、POJOのフィールドにリンクする必要があり、そうでないと言う人がいます。自分のPOJOに外部キーフィールドを作成すると、データベーステーブルに2つの外部キーフィールドがあり、それ以外のフィールドは全く作成されません。私はそれが私がTestRunに次のフィールドを追加したい推測することができ、エラーから例えば

private long idTestCase;   
private long idTestData; 

しかし、その後、私のデータベースは次のようになります。私はへ@JoinColumn(name=を設定しようとした

SELECT * FROM TEST_RUN; 
TEST_RUN_ID 
ID_TEST_CASE 
ID_TEST_DATA 
RESULT 
TEST_CASE_ID 
TEST_DATA_ID 
(no rows, 3 ms) 

関係の反対側の主キーフィールドの名前ですが、もう一度構築されませんでした。

感謝

+0

マッピングは妥当と見えます。この 'no property found error'エラーを作成するために正確に何をしていますか?クエリを実行していますか?もしそうなら、それを投稿する。 –

答えて

0

は私がJBossでガイドが異なるマッピングを説明するのに最も有用であることが判明しました。

関連する問題