2016-05-19 11 views
0

コード:1対1の休止状態のHibernateはなぜですか?私が持っている

financialTransactionEntity.getFinancialTransaction_5000().setFinancialTransactionEntity(financialTransactionEntity); 

と私が持っているクラス:

@Entity 
@Table(name = "master_card_daily_financial_transaction_entity") 
public class FinancialTransactionEntity { 

    private Long id; 

    private FinancialTransaction_5000 financialTransaction_5000; 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public Long getId() { 
     return id; 
    } 

    public void setId(Long id) { 
     this.id = id; 
    } 

    @OneToOne(mappedBy = "financialTransactionEntity", 
      targetEntity = FinancialTransaction_5000.class, 
      cascade = javax.persistence.CascadeType.ALL) 
    @Cascade({org.hibernate.annotations.CascadeType.ALL}) 
    public FinancialTransaction_5000 getFinancialTransaction_5000() { 
     return financialTransaction_5000; 
    } 

    public void setFinancialTransaction_5000(FinancialTransaction_5000 financialTransaction_5000) { 
     this.financialTransaction_5000 = financialTransaction_5000; 
    } 
} 

-

@Entity 
@Table(name = "master_card_daily_financial_transaction_5000") 
public class FinancialTransaction_5000 { 

    private Long id; 
    private FinancialTransactionEntity financialTransactionEntity; 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public Long getId() { 
     return id; 
    } 

    public void setId(Long id) { 
     this.id = id; 
    } 

    @OneToOne(targetEntity = FinancialTransactionEntity.class, 
      cascade = javax.persistence.CascadeType.ALL) 
    @Cascade({org.hibernate.annotations.CascadeType.ALL}) 
    public FinancialTransactionEntity getFinancialTransactionEntity() { 
     return financialTransactionEntity; 
    } 

    public void setFinancialTransactionEntity(FinancialTransactionEntity financialTransactionEntity) { 
     this.financialTransactionEntity = financialTransactionEntity; 
    } 
} 

が、次のように私はDBに取得することです。

table: master_card_daily_financial_transaction_entity 
+-----+------------------------------+ 
| id | financialTransaction_5000_id | 
+-----+------------------------------+ 
| 1 |       NULL | 

table: master_card_daily_financial_transaction_5000 
+-----+-------------------------------+ 
| id | financialTransactionEntity_id | 
+-----+-------------------------------+ 
| 1 |       1 | 

私はfinancialTransaction_5000_idもであることを確認しますか?

+0

これは既存のスキーマですか?実際に両方のテーブルにFKが必要ですか? –

+0

[これは役立つかもしれません](http://stackoverflow.com/questions/9420916/onetoone-unidirectional-and-bidirectional)あなたが両側に鍵となる関係を保存したいのは珍しいようですが、それには理由がありますか? – Draken

+0

あなたは@JoinColumnに言及する必要があります – shankarsh15

答えて

0

@OneToOne.mappedBy()のjavadocから@OneToOne

0

でmappedBy引数を削除:

関係を所有しているフィールド。この要素は、関連の逆(非所有)側でのみ指定されます。

あなただけの「非所有」エンティティに指定する必要があるので、私はあなたがいずれかの団体の間違った側を持続、または誤った側にmappedByを持っていると思います。

関連する問題