2013-09-11 79 views
0

我在一个实体中有几个OneToMany关系。JPA没有加载关系

@OneToMany(cascade = CascadeType.ALL, mappedBy = "url") 
private List<Squrlimage> squrlimagelist; 

@JoinColumn(name = "URL", referencedColumnName = "ID", insertable = false, updatable = false) 
@ManyToOne(optional = false) 
private Url url; 

然而,关系不加载。它总是在实体中给出一个空值。代码有什么问题?我的其他关系很好。谢谢。

回答

0

我想也许你可以在@ManyToOne下移动@JoinColumn,并确保你的本地数据库中有URL记录。并且在表格中检查ID是唯一的。

+0

尝试过,但没有用处。是的,表格对ID有约束。 – Yangrui

+0

你能检查你是否总是在字段上使用注解,并且你在配置文件中指定了任何访问方法。如果有差异,则字段上的注释将被忽略。 – cjcrobin

+0

我发现它非常奇怪,不仅关系没有正确加载,而且一些字段也返回null值。什么可能是错的? – Yangrui

0

试试这个

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "url") 
private List<Squrlimage> squrlimagelist; 

@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL) 
@JoinColumn(name = "URL", insertable = false, updatable = false) 
private Url url; 
0

你必须 “插入=假,可更新=假” 为什么呢?这意味着外键不会被插入/更新,所以当你读回它时它将是空的。