jpa-onetomany级联

gmxoilav  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(297)

我们正在开发一个应用程序,其中有一个树结构。使用javaee和jpa(eclipselink)以及mysql。
我的问题是:拯救父母会拯救所有的孩子。我删除了cascadetype persist和merge,但它仍然级联。
示例代码:父节点:

@Entity
@Table(name = "node")
@NamedQuery(name = "node.findAll", query = "SELECT n FROM Node n")
public class Node implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @Column(name = "NAME", nullable = false, unique = true)
    private String name;

    @OneToMany(fetch = FetchType.LAZY)
    @MapKey(name = "name")
    @MapKeyColumn(name = "name")
    @MapKeyJoinColumn(name = "name")
    @JoinColumn(name = "NODE_ID", referencedColumnName = "id")
    private Map<String, Data> datas = new HashMap<String, Data>();

以及子节点:

@Entity
@Table(name = "data")
@NamedQuery(name = "data.findAll", query = "SELECT d FROM Data d")
@IdClass(DataId.class)
public class Data implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Id
    @Column(name = "NAME", nullable = false)
    private String name;

父节点“node”还有一个称为system的父节点。代码类似于节点和数据。共有8个级别,但都是相似的,使用一对一关系构建树。在保存节点(父节点)时,是否可以避免保存数据(子)对象。例如,我想保存级别6(系统节点)中的一个对象,这样它就不应该保留或合并子节点。
因为每次rest我都会从客户机接收到一些节点和数据,我想立即保存节点,但是数据对象稍后会使用一个线程来检查哪些数据是新的,并且只保存它们。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题