Re: JPA: помогите разобраться с заданием отношения
От: mihauzen Украина  
Дата: 21.06.11 10:01
Оценка:
Здравствуйте снова:

После некоторых экспериментов и чтения мануалов пришел к следующему:
Сущности связываются однонаправленным отношением многие ко многим, где Notes содержат уникальное множество Options.
Двунаправленным отношение делать не хочу, т.к. Options нету необходимости знать о Notes.

@Entity
@Table(name="NOTES")
public class NoteEntity ...
{
        @Id
        @Column (name = "NOTE_ID")
        private int  noteId;

        @ManyToMany(cascade={CascadeType.MERGE})
        @JoinTable
        (name="NOTE_OPTIONS", 
                   joinColumns=@JoinColumn(name="NOTE_ID"), 
                   inverseJoinColumns=@JoinColumn(name="OPTION_ID")
                   )
    private Set<OptionEntity> options;
..............
}

@Entity
@Table(name = "OPTIONS")
public class OptionEntity ....
{
        @Id
        @Column(name = "OPTION_ID")
        private int  optionId;
...............    
}


Данная схема позволяет создавать Options и связывать их с Notes автоматически создавая связи в NOTE_OPTIONS таблице.

На скорую руку попробовал решить изначальный вопрос и получить уникальный список всех OptionEntity на основании связей из Note_Option таблицы.

"SELECT n.options FROM " + NoteEntity.class.getName() + " n ORDER BY n.options.value"


Не получилось

 org.hibernate.QueryException: illegal attempt to dereference collection [noteentity0_.NOTE_ID.options] with element property reference [value] [SELECT n.options FROM datatypes.entities.NoteEntity n ORDER BY n.options.value]



Курю мануалы дальше...
...все это временно... (с) Айэм
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.