Ответы пользователя по тегу EAV
  • Как правильно определить Entity если часть данных хранится в таблице свойств?

    @sirs
    Как один из вариантов - можно сделать с аннотацией @OneToMany. Создать отдельное entity на таблицу PEOPLE_ATTRIBUTE, например

    @Entity
    @Table(name = "PEOPLE_ATTRIBUTE")
    public class PeopleAttribute {
    private int peopleCode;
    private int attributeCode;
    private String attributeValue;
    ...
    }
    
    @Entity
    @Table(name = "PEOPLE")
    public class People {
    
    ...
    private Set<PeopleAttribute> attributes;
    
    @OneToMany(mappedBy = "attribute")
    public Set<PeopleAttribute> getAttributes() {
    		return this.attributes;
    	}
    ...
    }


    P.S. Небольшой совет из опыта: 1) всегда используйте Long для id сущностей, даже если вам кажется что short/int вам хватает, накладные расходы не такие уже и большие, не стоит экономить на спичках. 2) Если у вас @Id private int codePeople; является ID, то и называйте его peopleId, peopleID или просто id. Когда сущностей набирается много - начинается путаница и проблемы, особенно если в команде людей много и все пишут по разному.
    Ответ написан
    1 комментарий