Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate一对一id为空,为什么?_Hibernate_Jpa_Identifier_One To One - Fatal编程技术网

Hibernate一对一id为空,为什么?

Hibernate一对一id为空,为什么?,hibernate,jpa,identifier,one-to-one,Hibernate,Jpa,Identifier,One To One,我有: financialTransactionEntity.getFinancialTransaction_5000().setFinancialTransactionEntity(financialTransactionEntity); 我的课程是: @Entity @Table(name = "master_card_daily_financial_transaction_entity") public class FinancialTransactionEntity { pr

我有:

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;
    }
}
--

但我将在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\u 5000\u id也是1

删除@OneToOne中的mappedBy参数从
@OneToOne.mappedBy()中删除@OneToOne中的mappedBy参数

拥有关系的字段。此元素仅在关联的反向(非拥有)端指定


您只需要在“非拥有”实体上指定,因此我猜您要么坚持了关联的错误端,要么将
mappedBy
放在了错误端。

来自
@OneToOne.mappedBy()
javadoc:

拥有关系的字段。此元素仅在关联的反向(非拥有)端指定


您只需要在“非拥有”实体上指定,因此我猜您要么坚持了关联的错误端,要么将
mappedBy
放在了错误端。

这是现有模式吗?您真的想要两个表中的FK吗?。这似乎很不寻常,为什么你想把关键的关系存储在双方,这有什么原因吗?你需要提一下@JoinColumn@shankarsh15:
@JoinColumn
这是一个现有的模式吗?您真的想要两个表中的FK吗?。这似乎很不寻常,为什么你想把关键的关系存储在双方,这有什么原因吗?你需要提一下@JoinColumn@shankarsh15:
@JoinColumn
是可选的
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    |