У меня есть поле в MappedSuperClass, которое помечено @Column, но тип поля не определяется Hibernate.
Классы
@Getter
@Setter
@MappedSuperClass
public abstract class IdentifiableObject {
@Id
@GeneratedValue
private Integer id;
}
@Getter
@Setter
@MappedSuperClass
public abstract class EvaluationPeriodObject extends IdentifiableObject{
@Column
private Period period;
}
@Data
@Entity
@Table(name = "PERIOD")
public class Period extends IdentifiableObject {
@Column
private LocalDate start;
@Column
private LocalDate end;
}
@Data
@Entity
@Table(name = MY_CLASS, indexes = {
@Index(name = "FK_MY_CLASS_PERIOD", columnList = "PERIOD")
})
public class MyClass extends EvaluationPeriodObject {
@Column
private String description;
}
Caused by: org.hibernate.MappingException: Could not determine type for: Period, at table: MY_CLASS, for columns: [org.hibernate.mapping.Column(period)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:455)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:422)
at org.hibernate.mapping.Property.isValid(Property.java:226)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:597)
at org.hibernate.mapping.RootClass.validate(RootClass.java:265)
at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:459)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879)
... 45 more
Версия гибернации: compile 'org.hibernate:hibernate-core:5.2.13.Final'
Версия SpringBoot 2.0.0.RELEASE
If more Information is required, let me know.
I've been reading most post about this but form what I've read they mostly envolve people using annotations on 'Getters' and 'Fields', Since I'm using Lombok I don't have any Getters to put the annotations on so I believe this is not the problem I'm facing.
@Paul Janssens Period - это отдельная таблица в БД, поэтому я не думаю, что мне нужно несколько столбцов




Пожалуйста, попробуйте добавить AccessType.FIELD в аннотации получателей и установщиков @Getter(AccessType.FIELD).
Для @Getter такой опции нет
Я могу представить, что для сохранения периода потребуется как минимум два столбца?