Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Однонаправленный мэппинг


Автор: oson 2.11.2012, 23:46
Подскажите пожалуйста.
Есть мэппинг двух сущностей

Код

@Entity
@Table(name = "COMMENTS")
public class Comments
{
    @ManyToOne
    @JoinColumn(name = "BOOK_ID")
    private Book book;
}



Код

@Entity
@Table(name = "BOOKS")
public class Book
{
    @OneToMany(mappedBy = "book")
    private List<Comment> comments;

    public List<Comment> getComments() {}
    public void setComments(List<Comment>) {}
}



Если я не хочу, чтобы из Comment был доступ к его соотв Book.
Поэтому у меня нет в классе Comment - setBook()/getBook().
В данном случае будет же тот же самый результат, как если бы я убрал 

 
Код

@ManyToOne
    @JoinColumn(name = "BOOK_ID")



из класса Comment. Разве нет?
Но просто ж не будет создаваться дополнительная промежуточная таблица.

Автор: Christoph 26.11.2012, 17:33
у тебя в классе Book 
Код

@OneToMany(mappedBy = "book")
    private List<Comment> comments;


mappedBy - указывает relationship owner, в случае с unidirectional связью, такого параметра не должно быть, а в сущности Comment удалить Book и все аннотации

Автор: oson 26.11.2012, 18:45
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)