HI,
Я до сих пор пользуюсь Hibernate с большим удовлетворением.В последнее время кажется, что я не могу сохранить @CollectionOfElements с помощью аннотации.
Я сохраняю объект класса Estate, который содержит карту RoomGroups, как здесь:
@javax.persistence.MapKey(name = "code")
@Cascade(value = {CascadeType.DELETE_ORPHAN, CascadeType.SAVE_UPDATE})
@OneToMany(mappedBy = "estate")
@org.hibernate.annotations.OrderBy(clause = "code ASC")
private Map<String, RoomsGroup> roomGroups = new HashMap<String, RoomsGroup>();
The RoomGroupсохраняется правильно.И RoomGroup также имеет отношения с MasterPrice
@Cascade(value = {CascadeType.DELETE_ORPHAN, CascadeType.SAVE_UPDATE})
@OneToOne(mappedBy = "roomGroup", fetch = FetchType.EAGER)
private MasterPrice prices;
Пока все хорошо, элементы MasterPrice правильно хранятся в БД.Теперь внутри MasterPrice есть другая коллекция, и кажется, что она никогда не будет сохранена
@CollectionOfElements (fetch = FetchType.EAGER)
@JoinTable(
name = "roomgroups_masterprice_items",
joinColumns = {@JoinColumn(name = "fk_masterpricesID")})
@IndexColumn(name = "position")
private List<MasterPriceItem> dbprices = new ArrayList<MasterPriceItem>();
Класс MasterPriceItem определен так:
@Embeddable
public class MasterPriceItem implements Serializable{
Я также определил равен / hashCodeметоды в MasterPriceItem, но кажется, что hibernate никогда не сохраняется этот.Я не получаю никаких исключений, и когда я пытаюсь загрузить его, он всегда отображается как NULL.
Я использую hibernate_3.3.1.ga. Есть идеи, которые я могу попробовать?Класс MasterPriceItem правильно анализируется с помощью hibernate [если я добавлю поле, которого нет в таблице, я получу сообщение об ошибке]
Любая помощь высоко ценится.Спасибо.