@Cascade在插入时无用吗?

时间:2016-03-22 15:03:15

标签: java hibernate jpa orm cascade

这是我的对象 Utente

@Entity
@Table(name = "utente")
public class Utente implements Serializable{
    ... 

    @Id
    @GeneratedValue
    @Column(name = "id")
    private int id;

    @OneToOne(mappedBy = "utente")
    @Valid
    @Cascade(CascadeType.ALL)
    private Autenticazione autenticazione;  
    ...
}

这是我的对象 Autenticazione

@Entity
@Table(name = "autenticazione")
public class Autenticazione implements Serializable{
   ...  

    @Id
    @GeneratedValue
    @Column(name = "id")
    private int id; 

    @OneToOne(targetEntity=Utente.class)    
    @JoinColumn(name="utente", referencedColumnName="id") 
    private Utente utente;            

    ...
}

我的目标是在Db上保存一个 Utente 对象,并使用@Cascade(CascadeType.ALL)保存相对对象 Autenticazione

但我收到错误Column 'utente' cannot be null,因为 Autenticazione.utente 为空,因为我在那一刻保存了对象Utente。

我该怎么办?

我应首先保存对象 Utente ,然后保存对象 Autenticazione ? 在这种情况下,@Cascade(CascadeType.ALL)无用。

谢谢

1 个答案:

答案 0 :(得分:0)

Here您可以找到有关级联的一些信息,您是否以两种方式关联对象?,例如:

Stock stock = new Stock();
StockDailyRecord stockDailyRecords = new StockDailyRecord();
//set the stock and stockDailyRecords  data

stockDailyRecords.setStock(stock);        
stock.getStockDailyRecords().add(stockDailyRecords);

session.save(stock);