2013-09-11 5 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

Я думаю, что вы можете переместить @JoinColumn под @ManyToOne и убедиться, что в вашей локальной базе данных есть запись url. А также проверьте, что идентификатор уникален в таблице.

+0

Пробовал, но не использовал .. Да, таблица имеет ограничение на ID. – Yangrui

+0

вы можете проверить, всегда ли вы используете аннотацию в поле, и укажите ли какой-либо метод доступа в файле конфигурации. если есть несоответствие, аннотация по полю будет проигнорирована. – cjcrobin

+0

Мне было очень странно, что не только отношения не загружались должным образом, но некоторые поля также возвращали нулевое значение. Что может быть неправильным? – 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

У вас есть "Вставной = False, обновляемые = ложь" почему? Это означает, что внешний ключ не будет вставлен/обновлен, поэтому, когда вы его прочитаете, он будет пустым.

Смежные вопросы