Hibernate在未被告知时正在进行更新

时间:2017-05-17 15:43:04

标签: java mysql hibernate jpa spring-boot

Hibernate正在做一些我似乎无法解释的事情。 我有两个实体,其中YearlyBreakDown的关系为ManyBreakdown,而单个MonthlyBreakdown只有一个YearlyBreakDown。

我看到了什么?

当我在YearlyBreakDown上使用hibernate保存时。 Hibernate似乎更新了MonthlyBreakdown(请参阅下面的Hibernate日志)。

我所知道的。

Hibernate能够级联更新,删除等。对于子实体,但仅在明确定义了关系时,查看注释文档,它明确指出默认情况是不对其子级进行级联操作。

我想要发生什么

我希望能够在我的Java实体上调用hibernate保存,而无需将操作级联到MontlyBreakdown孩子。

我对hibernate没有足够的了解,知道我是否设置错误,我想知道是否有人可以解释发生了什么或指出我做错了什么

YearlyBreakDown.class

@Entity
@Table(name = "YRLY_BRKDN", schema = "pricing")
@SequenceGenerator(sequenceName = "SEQ_YRLY_BRKDN_ID", name = "SEQ_YRLY_BRKDN_ID", schema = "pricing", allocationSize = 1)
public class YearlyBreakdown {

        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_YRLY_BRKDN_ID")
        @Column(name = "YRLY_BRKDN_ID")
        @Access(AccessType.PROPERTY)
        private Integer                     id;

        @OneToMany(mappedBy = "yearlyBreakdown")
        private List<MonthBreakdown>        monthBreakdowns  = new ArrayList<>();
    }

MontlyBreakdown.class

@Entity
@Table(name = "MTH_BRKDN", schema = "pricing")
public class MonthBreakdown implements Processable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "MTH_BRKDN_ID")
    @Access(AccessType.PROPERTY)
    private Integer                  id;

    @ManyToOne
    @JoinColumn(name = "YRLY_BRKDN_ID")
    private ServiceOfferingBreakdown serviceOfferingBreakdown;

    @Column(name = "MTH_CT")
    private Integer                  month;

    @Column(name = "DRCT_CST_AM")
    private BigDecimal               directCost;

    @Column(name = "RISK_CST_AM")
    private BigDecimal               riskCost;

    @Column(name = "INFLTN_CST_AM")
    private BigDecimal               inflationCost;

    @Column(name = "NET_REV_AM")
    private BigDecimal               netRevenue;

    @Column(name = "GRS_MRGN_AM")
    private BigDecimal               grossMargin;

    @Column(name = "OPER_PRFT_AM")
    private BigDecimal               operatingProfit;

    @Transient
    private boolean                  processed;

}

休眠日志

Hibernate: select monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_1_, monthbreak0_.DRCT_CST_AM as DRCT_CST2_1_1_, monthbreak0_.GRS_MRGN_AM as GRS_MRGN3_1_1_, monthbreak0_.INFLTN_CST_AM as INFLTN_C4_1_1_, monthbreak0_.MTH_CT as MTH_CT5_1_1_, monthbreak0_.NET_REV_AM as NET_REV_6_1_1_, monthbreak0_.OPER_PRFT_AM as OPER_PRF7_1_1_, monthbreak0_.RISK_CST_AM as RISK_CST8_1_1_, monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_1_ from pricing.MTH_BRKDN monthbreak0_ where monthbreak0_.YRLY_BRKDN_ID=?
Hibernate: select monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_1_, monthbreak0_.DRCT_CST_AM as DRCT_CST2_1_1_, monthbreak0_.GRS_MRGN_AM as GRS_MRGN3_1_1_, monthbreak0_.INFLTN_CST_AM as INFLTN_C4_1_1_, monthbreak0_.MTH_CT as MTH_CT5_1_1_, monthbreak0_.NET_REV_AM as NET_REV_6_1_1_, monthbreak0_.OPER_PRFT_AM as OPER_PRF7_1_1_, monthbreak0_.RISK_CST_AM as RISK_CST8_1_1_, monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_1_ from pricing.MTH_BRKDN monthbreak0_ where monthbreak0_.YRLY_BRKDN_ID=?
Hibernate: select monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_1_, monthbreak0_.DRCT_CST_AM as DRCT_CST2_1_1_, monthbreak0_.GRS_MRGN_AM as GRS_MRGN3_1_1_, monthbreak0_.INFLTN_CST_AM as INFLTN_C4_1_1_, monthbreak0_.MTH_CT as MTH_CT5_1_1_, monthbreak0_.NET_REV_AM as NET_REV_6_1_1_, monthbreak0_.OPER_PRFT_AM as OPER_PRF7_1_1_, monthbreak0_.RISK_CST_AM as RISK_CST8_1_1_, monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_1_ from pricing.MTH_BRKDN monthbreak0_ where monthbreak0_.YRLY_BRKDN_ID=?
Hibernate: select monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_1_, monthbreak0_.DRCT_CST_AM as DRCT_CST2_1_1_, monthbreak0_.GRS_MRGN_AM as GRS_MRGN3_1_1_, monthbreak0_.INFLTN_CST_AM as INFLTN_C4_1_1_, monthbreak0_.MTH_CT as MTH_CT5_1_1_, monthbreak0_.NET_REV_AM as NET_REV_6_1_1_, monthbreak0_.OPER_PRFT_AM as OPER_PRF7_1_1_, monthbreak0_.RISK_CST_AM as RISK_CST8_1_1_, monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_1_ from pricing.MTH_BRKDN monthbreak0_ where monthbreak0_.YRLY_BRKDN_ID=?
Hibernate: select monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_1_, monthbreak0_.DRCT_CST_AM as DRCT_CST2_1_1_, monthbreak0_.GRS_MRGN_AM as GRS_MRGN3_1_1_, monthbreak0_.INFLTN_CST_AM as INFLTN_C4_1_1_, monthbreak0_.MTH_CT as MTH_CT5_1_1_, monthbreak0_.NET_REV_AM as NET_REV_6_1_1_, monthbreak0_.OPER_PRFT_AM as OPER_PRF7_1_1_, monthbreak0_.RISK_CST_AM as RISK_CST8_1_1_, monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_1_ from pricing.MTH_BRKDN monthbreak0_ where monthbreak0_.YRLY_BRKDN_ID=?
Hibernate: select monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_0_, monthbreak0_.MTH_BRKDN_ID as MTH_BRKD1_1_1_, monthbreak0_.DRCT_CST_AM as DRCT_CST2_1_1_, monthbreak0_.GRS_MRGN_AM as GRS_MRGN3_1_1_, monthbreak0_.INFLTN_CST_AM as INFLTN_C4_1_1_, monthbreak0_.MTH_CT as MTH_CT5_1_1_, monthbreak0_.NET_REV_AM as NET_REV_6_1_1_, monthbreak0_.OPER_PRFT_AM as OPER_PRF7_1_1_, monthbreak0_.RISK_CST_AM as RISK_CST8_1_1_, monthbreak0_.YRLY_BRKDN_ID as SRVC_OFR9_1_1_ from pricing.MTH_BRKDN monthbreak0_ where monthbreak0_.YRLY_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?
Hibernate: update pricing.MTH_BRKDN set DRCT_CST_AM=?, GRS_MRGN_AM=?, INFLTN_CST_AM=?, MTH_CT=?, NET_REV_AM=?, OPER_PRFT_AM=?, RISK_CST_AM=? where MTH_BRKDN_ID=?

0 个答案:

没有答案