Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 坚持JPA收藏oneToMany不起作用_Java_Hibernate_Jpa - Fatal编程技术网

Java 坚持JPA收藏oneToMany不起作用

Java 坚持JPA收藏oneToMany不起作用,java,hibernate,jpa,Java,Hibernate,Jpa,我有这个自我关系注释 public class Estoria implements Serializable { @EmbeddedId protected EstoriaPK estoriaPK; @ManyToOne @JoinColumns({@JoinColumn(name = "id_estoria", referencedColumnName = "id", updatable = false, insertable = false, nullable = true)

我有这个自我关系注释

public class Estoria implements Serializable {

 @EmbeddedId 
 protected EstoriaPK estoriaPK; 

@ManyToOne
@JoinColumns({@JoinColumn(name = "id_estoria", referencedColumnName = "id", updatable = false, insertable = false, nullable = true)
          ,@JoinColumn(name = "id_projeto" , referencedColumnName = "id_projeto" ,     insertable = false, updatable = false)})
private Estoria subtask;

@OneToMany(mappedBy = "subtask",cascade = CascadeType.ALL) 
private Collection<Estoria> subtasks; 

}
谁能给我一些建议吗


好消息,这篇文章解决了我的问题,但我并不认为我需要引用root>>leaf/leaf>>root

您必须在子id中设置parrent id。在子任务集合中设置rootEstoria id

public void persistSubtasks(int idEstoria, Collection<Estoria> subtasks) {
    Estoria rootEstoria = entityManager.createNamedQuery("Estoria.findById", Estoria.class)
                .setParameter("id", idEstoria)
                .getSingleResult();
    for(Estoria subtask:subtasks){
        subtask.setSubtask(rootEstoria);
    }
    rootEstoria.setSubtasks(subtasks);
}

@smartphonne,这是个好消息。若它有效,那个么你们可以接受答案并投票支持。让别人能找到答案是有用的!我忘了;现在做了吗
+----+------------+------------+--------------------------+-----------     -------------------------------------------------------------------+------   ------+--------+--------------+
| id | id_projeto | id_estoria | nome                     | descricao                                                                      | estimativa | status | data_criacao |
+----+------------+------------+--------------------------+------------------------------------------------------------------------------+------------+--------+--------------+
|  1 |          7 |       NULL | Check all old activities | No one know if every feature was checked before builded                      |       NULL |      0 | 2015-01-02   |
|  2 |          7 |       "supost to be 1" | Register all users       | Everyone needs to be registered and identified by profile                    |       NULL |      0 | 2015-01-02   |
public void persistSubtasks(int idEstoria, Collection<Estoria> subtasks) {
    Estoria rootEstoria = entityManager.createNamedQuery("Estoria.findById", Estoria.class)
                .setParameter("id", idEstoria)
                .getSingleResult();
    for(Estoria subtask:subtasks){
        subtask.setSubtask(rootEstoria);
    }
    rootEstoria.setSubtasks(subtasks);
}