• Hibernate many to many с дополнительными атрибутами?

    @bobzer
    Java EE Developer
    Думаю, что вам нужен one-to-many на самом деле, т.е. в сущности User хранится список сущностей Achievement. При этом сущность Achievement имеет поля, описывающие конкретное достижение конкретного пользователя (дата получения и другие параметры), а также ссылку на тип достижения (следующий уровень one-to-many). По поводу Set/List - как объявите в классе так и будет, но для сортировки требуется указать order-by в .hbm.xml.

    Примерно так:
    public class User {
        private List<Achievement> achievements;
        get...
        set...
    }
    
    public class Achievement {
        private User user;
        private Date createDate;
        private DicAchievementType type;//справочник типов достижений
        get...
        set...
    }


    User.hbm.xml
    <bag name="achievements" inverse="true" cascade="all,delete-orphan" order-by="CREATE_DATE">
        <key column="user_id"/>
        <one-to-many class="Achievement"/>
    </bag>


    Achievement.hbm.xml
    <many-to-one name="user" column="user_id" class="User"/>
    <many-to-one name="type" column="achievement_type_id" class="DicAchievementType"/>
    Ответ написан
    1 комментарий