Прежде всего, у вас есть картографическая информация, существующая в вашем PT_CORE
.И я предполагаю, что это что-то вроде FOREIGN KEY (stid) REFERENCES (stid)
.Если вы хотите использовать существующую схему и существующие данные, я думаю, что действительно нет таблицы сопоставления core_aux
.По крайней мере, вы не упомянули об этом.Тем не менее, он виден как @JoinTable
аннотация, но все же есть этот вышеупомянутый внешний ключ, который, как представляется, является реальным отображением (поэтому опять не таблицей соединения).
Я предлагаю следующее
удалите это
@Column(nullable=false)
private int stId; //The Foreign key column
из вашего PtCore
.Я думаю, что это не нужно.Также в PtCore
удалите @JoinTable
(потому что то, что я сказал выше) и добавьте информацию об отображении к аннотации @OneToOne
, например:
@OneToOne
@JoinColumn(name = "stid")
private StAux staux;
из вашего PT_CORE
.
Затем в StAux
измените также немного:
@Id
@Column(name = "stid") // this might not be needed but if there is like "st_id"...
private Integer stId; // so just for sure
@OneToOne(mappedBy = "staux")
private PtCore ptcore;
Поскольку у вас есть существующие таблицы и ограничения, могут возникнуть ошибки, если hibernate попытается автоматически сгенерировать их снова с помощью инструкций JPA.
Проверьте это например для получения дополнительной информации.
ОБНОВЛЕНИЕ : только что также понял, что в вашем заголовке есть @OneToMany
, но в вашем коде @OneToOne
.
Так что, возможно, вы захотите немного уточнить свой вопрос и / или заголовок.