Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 为什么Hibernate不更新OneTONE关系的外键列?_Java_Hibernate_Jpa_Hibernate Mapping_One To One - Fatal编程技术网

Java 为什么Hibernate不更新OneTONE关系的外键列?

Java 为什么Hibernate不更新OneTONE关系的外键列?,java,hibernate,jpa,hibernate-mapping,one-to-one,Java,Hibernate,Jpa,Hibernate Mapping,One To One,表t1有一列f_id,这是它的主键。表t2有一列f\u integration\u id,它引用了表t1中的f\u id列 现在,当我试图保存对象1时,它在两个表t1和t2中创建了两行。但是表t2中的外键列仍然是NULL。有人能告诉我为什么会这样吗?虽然这对一对夫妻关系来说是一种魅力。我认为问题就在下面一行。您的设置可更新且可插入为false。所以它不会插入或更新。你可以参考这个 我认为问题在下面一行。您的设置可更新且可插入为false。所以它不会插入或更新。你可以参考这个 你应该提供实体持久性

t1有一列f_id,这是它的主键。表t2有一列f\u integration\u id,它引用了表t1中的f\u id列


现在,当我试图保存对象1时,它在两个表t1t2中创建了两行。但是表t2中的外键列仍然是NULL。有人能告诉我为什么会这样吗?虽然这对一对夫妻关系来说是一种魅力。

我认为问题就在下面一行。您的设置可更新且可插入为false。所以它不会插入或更新。你可以参考这个


我认为问题在下面一行。您的设置可更新且可插入为false。所以它不会插入或更新。你可以参考这个


你应该提供实体持久性代码。嘿@alexvaluiskyi没有太多持久性代码。我正在扩展JPA职位,而不是实体经理。所以持久性代码就是repository.saveAndFlush(object1)我的意思是创建实体并将其保存到数据库的服务方法。如果您签入我提供的代码段,您必须同时指定两个边对象关系。我在Object1和Object2中都定义了双向映射。您应该设置两个边关系:
Object1.setObject2(Object2);object2.setObject1(object1)在持久化之前,你应该提供实体持久化代码。我正在扩展JPA职位,而不是实体经理。所以持久性代码就是repository.saveAndFlush(object1)
我的意思是创建实体并将其保存到数据库的服务方法。如果您签入我提供的代码段,您必须同时指定两个边对象关系。我在Object1和Object2中都定义了双向映射。您应该设置两个边关系:
Object1.setObject2(Object2);object2.setObject1(object1)在持久化之前
@Entity
@Table(name = "t1")
public class Object1 {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "f_id")
  private Long id;

  @OneToOne(cascade = {CascadeType.ALL},mappedBy = "object1")
  private Object2 object2;

}

@Entity
@Table(name = "t2")
public class Object2 {

  @Id
  @Column(name = "f_id")
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;

  @OneToOne
  @JoinColumn(referencedColumnName = "f_id",name = "f_integration_id",insertable = false, updatable = false)
  private Object1 object1;
}

@JoinColumn(referencedColumnName = "f_id",name = "f_integration_id",insertable = false, updatable = false)