Я получаю следующую ошибку при сохранении объекта. Однако подобная конфигурация работает для других объектов модели в моих проектах. Любая помощь будет принята с благодарностью.
@Entity
@Table(name = "ENROLLMENT_GROUP_MEMBERSHIPS", schema = "LEAD_ROUTING")
public class EnrollmentGroupMembership implements Serializable, Comparable,Auditable {
@javax.persistence.SequenceGenerator(name = "enrollmentGroupMemID", sequenceName = "S_ENROLLMENT_GROUP_MEMBERSHIPS")
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "enrollmentGroupMemID")
@Column(name = "ID")
private Long id;
@ManyToOne()
@JoinColumn(name = "TIER_WEIGHT_OID", referencedColumnName = "OID", updatable = false, insertable = false)
private TierWeight tierWeight;
public EnrollmentGroupMembership() {
}
}
Код:
@Entity
@Table(name = "TIER_WEIGHT", schema = "LEAD_ROUTING")
public class TierWeight implements Serializable, Auditable {
@SequenceGenerator(name = "tierSequence",sequenceName = "S_TIER_WEIGHT")
@Column(name = "OID")
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "tierSequence")
private Long id;
@OneToMany
@JoinColumn(name = "TIER_WEIGHT_OID", referencedColumnName = "OID")
private Set<EnrollmentGroupMembership> memberships;
public TierWeight() {
}
}
Код логического слоя:
@Override
public void createTier(String tierName, float weight) {
TierWeight tier = new TierWeight();
tier.setWeight(weight);
tier.setTier(tierName);
tierWeightDAO.create(tier);
}
Подобная конфигурация Many-one работает на протяжении всего проекта. Я не знаю, почему этот экземпляр не работает. Любая помощь будет принята с благодарностью.
Вот ошибка, которую я получаю
вызвано:
org.hibernate.id.IdentifierGenerationException:
идентификаторы для этого класса должны быть вручную
присваивается перед вызовом save ():
edu.apollogrp.d2ec.model.TierWeight at
org.hibernate.id.Assigned.generate (Assigned.java:3
3) в
org.hibernate.event.def.AbstractSaveEventListener.
saveWithGeneratedId (AbstractSaveEventListener.java
: 99)
Файл журнала сообщает, что tierSequence генератора последовательностей не создается. Однако создаются другие генераторы последовательности.
2010-06-03 11: 24: 51 834 ОТЛАДКА
[Org.hibernate.cfg.AnnotationBinder:]
Обработка аннотаций
edu.apollogrp.d2ec.model.TierWeight.dateCreated
2010-06-03 11: 24: 51 834 DEBUG
[Org.hibernate.cfg.AnnotationBinder:]
Обработка аннотаций
edu.apollogrp.d2ec.model.TierWeight.dateCreated
2010-06-03 11: 24: 51 834 DEBUG
[Org.hibernate.cfg.Ejb3Column:]
Связующий столбец DATE_CREATED уникальный
ложь
.......................................
.......................................
2010-06-03 11: 24: 51 756 DEBUG
[Org.hibernate.cfg.AnnotationBinder:]
Обработка аннотаций
edu.apollogrp.d2ec.model.CounselorAvailability.id
2010-06-03 11: 24: 51 756 DEBUG
[Org.hibernate.cfg.Ejb3Column:]
OID столбца привязки уникальный false
2010-06-03 11: 24: 51 756 DEBUG
[Org.hibernate.cfg.Ejb3Column:]
OID столбца привязки уникальный false
2010-06-03 11: 24: 51 756 DEBUG
[Org.hibernate.cfg.AnnotationBinder:]
id - это id 2010-06-03 11: 24: 51,756
DEBUG
[Org.hibernate.cfg.AnnotationBinder:]
id - это id 2010-06-03 11: 24: 51,756
DEBUG
[Org.hibernate.cfg.AnnotationBinder:]
Добавить генератор последовательности с именем:
advisorAvailabilityID 2010-06-03
11: 24: 51,756 ОТЛАДКА
[Org.hibernate.cfg.AnnotationBinder:]
Добавить генератор последовательности с именем:
counselorAvailabilityID
При отладке я вижу, что org.hibernate.impl.SessionFactoryImpl возвращает «Назначенный» идентификаторGenerator. Это ужасно Я указал идентификатор «Генератор» как «Авто». Пожалуйста, смотрите код выше.
Как sidenote, я пытался отладить и посмотреть, как объекты извлекаются из базы данных. Похоже, в записях enrollmentgroupmembership указано заполненное значение. Однако, если я посмотрю на объект меньшего веса, у него нет записей членства в группе регистрации. Я озадачен Я думаю, что эти две проблемы должны быть связаны.
Мэдди.