Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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中的一对多关系映射出错_Java_Hibernate - Fatal编程技术网

Java hibernate中的一对多关系映射出错

Java hibernate中的一对多关系映射出错,java,hibernate,Java,Hibernate,我有两个表格:opinionPoll和result 具有一对多(结果)关系的 当我尝试使用别名从其他表中获取记录时,映射出错。 当我删除父对象时,子对象(结果)不会被删除,而是父对象被删除。我认为我的问题在于映射,所以下面是我的表的代码 征求意见: @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER) @Fetch(value = FetchMode.SUBSELECT)

我有两个表格:
opinionPoll
result

具有一对多(结果)关系的

当我尝试使用别名从其他表中获取记录时,映射出错。 当我删除父对象时,子对象(结果)不会被删除,而是父对象被删除。我认为我的问题在于映射,所以下面是我的表的代码

征求意见:

@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
            @Fetch(value = FetchMode.SUBSELECT)
            @JoinColumn(name = "pid", nullable = false, updatable = true)

            private List<PollResult> pollResults = new ArrayList<PollResult>() ;
试试这个:

For OpinionPoll:

// mappedBy "opinionPoll" --> the OpinionPoll object in Result class
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL,mappedBy="opinionPoll")
private List<PollResult> pollResults = new ArrayList<PollResult>() ;


For Result :

@ManyToOne
@JoinColumn(name = "pid")
private OpinionPoll opinionPoll;
对于OpinionPoll:
//mappedBy“opinion波尔”-->结果类中的opinion波尔对象
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL,mappedBy=“opinionPoll”)
private List pollResults=new ArrayList();
关于结果:
@许多酮
@JoinColumn(name=“pid”)
私人意见池意见池;

当我试图保存子对象obj opinionPoll=opinionPollDao.getPoll(pollId)时;opinionPoll.getPollResults().add(pollResult);savePoll(opinionPoll);我收到一个错误org.hibernate.exception.ConstraintViolationException:无法添加或更新子行:外键约束失败(
gcm2
tbl\u poll\u result
,constraint
FK8208399C8E2A768A
外键(
poll\u id
)引用
tbl\u opinistration\u poll\u poll\u
)似乎是“pid”不正确,您必须将其更改为:“poll_id”、,请在两个表中提供列名好吗?
For OpinionPoll:

// mappedBy "opinionPoll" --> the OpinionPoll object in Result class
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL,mappedBy="opinionPoll")
private List<PollResult> pollResults = new ArrayList<PollResult>() ;


For Result :

@ManyToOne
@JoinColumn(name = "pid")
private OpinionPoll opinionPoll;