Мне нужно создать простую базу данных с использованием Hibernate, но что бы я ни делал, я получил эту ошибку:
org.hibernate.MappingException: повторяющийся столбец в сопоставлении для объекта: tr.com.ozer.datastructures.Столбец GameObject: x (должен отображаться с помощью insert = "false" update = "false")
Во-первых, я использую PostgreSQL 11 и Hibernate 5.4
Вот что я пытаюсь сделать:
@Embeddable
public class Position {
private Integer x;
private Integer y;
// Setters end getters
}
@Entity
public class GameObject {
@Id
private Integer id;
@Embedded
private Position absPosition;
@Embedded
private Position relativeToBaseA;
@Embedded
private Position relativeToBaseB;
// Setters and getters
}
Я не хочу использовать @AttributeOverrride, так как мой класс Position имеет больше полей, чем здесь, и я не хочу определять их все для каждого поля.Вместо этого я просто написал бы отдельные поля.
И мне наплевать на имена столбцов базы данных, так много атм.Есть ли в Hibernate какой-нибудь механизм автоматического именования?Как и absPosition_x, absPosition_y ,lativeToBaseA_x ,lativeToBaseA_y и т. Д.
Примечание. Несмотря на то, что у меня есть conf "implicit_naming_strategy" в моем hibernate.cfg.xml, я все еще получаю ошибку.Вот строка:
<property name="hibernate.implicit_naming_strategy">org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl</property>