Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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
Java @在插入时,层叠无效?_Java_Hibernate_Jpa_Orm_Cascade - Fatal编程技术网

Java @在插入时,层叠无效?

Java @在插入时,层叠无效?,java,hibernate,jpa,orm,cascade,Java,Hibernate,Jpa,Orm,Cascade,这是我的目标,中尉: @Entity @Table(name = "utente") public class Utente implements Serializable{ ... @Id @GeneratedValue @Column(name = "id") private int id; @OneToOne(mappedBy = "utente") @Valid @Cascade(CascadeType.ALL)

这是我的目标,中尉:

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

    ...
}
这是我的目标

@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;  
    ...
}
@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上保存一个对象utinte,并使用
@Cascade(CascadeType.ALL)
,保存相对对象autentitazione

但是我得到的错误是,
列“utete”不能为null,因为autenticatazione.utete为null,因为我正在保存对象utete

我该怎么办

我是否应该先保存对象utete,然后保存对象Autenticazione? 在这种情况下,
@Cascade(CascadeType.ALL)
是无用的

谢谢

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

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

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

session.save(stock); 

JPA具有关系注释的“级联”属性,这肯定不是“无用的”。为什么你想使用特定于提供者的东西,而不是我完全不知道你已经将
ute.autenticatazione
对象设置为autenticatazione对象,但是你还需要将
autenticatazione.ute
对象设置为ute对象。JPA不会自动为您执行此操作,因为它不能保证您确实希望链接到同一对象。