java - 无法在表之间建立连接 只能进行读取操作,但不能进行插入操作

标签 java hibernate many-to-many

我正在尝试使用 hibernate 连接三个表。 当我读取方法时它可以工作,但是当我保存时我遇到了空指针问题 第三个表Id是auto_increment。

The diagram

感谢您的帮助!

这是连接表(THIRD 和 ONE 表 ID 不应为 null )

@Entity
@Table(name = "SECOND_TABLE")
public class SecondTableEntity
    implements Serializable {

 @Id
    @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "FIRST_TABLE_KEY")
    private FirstTable firstTable;

    @Id
    @MapsId("id")
    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "THIRD_TABLE_ID", referencedColumnName = "THIRD_TABLE_ID")
    private ThirdTable thirdTable;

    @Column(name = "SECOND_TABLE_VALUE")
    private String secondTable;

}

在此表中,ID 为 auto_increment

@Entity
@Table(name = "THIRD_TABLE")
public class ThirdTable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "THIRD_TABLE_ID")
    private Integer id;

    @Column(name = "THIRD_TABLE_NAME")
    private String thirdTableName;

    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "SECOND_TABLE_ID")
    private List<SecondTable> secondTable = new ArrayList<>();


这里的Id也是自动递增的

@Entity
@Table(name = "FIRST_TABLE")
public class FirstTable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "FIRST_TABLE_ID")
    private Integer firstTable;

    @Column(name = "FIRST_TABLE_NAME")
    private String firstTableName;

问题是hibernate应该在保存SECOND_TABLE之前保存一个表和第三个表

有什么办法可以做到这一点吗?

感谢帮助

最佳答案

抱歉,我发现了这个问题。

我在 SECOND_TABLE 中添加了嵌入键,而不是在两个对象上都添加了 @Id

关于java - 无法在表之间建立连接 只能进行读取操作,但不能进行插入操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57679648/

相关文章:

java - 在 WebServices 插件设置中设置有效的 CXF 路径

java - 尝试启动 Activity 时出现二进制 XML 运行时异常

multithreading - 线程中的 hibernate session

java - 无法在实体中发送服务

java - ManyToMany 集合不断被删除

sql - Django:在更改列表中显示多对多字段

java - Android - 将 adroid.support.v4.app.FragmentManager 转换为 FragmentManager

java - 对于输入字符串 : Error

java - EntityManager 无法在独立应用程序中初始化

ios - 多对多使用 Swift 和 Core Data 附加数据