Hibernate: два внешних ключа из одной таблицы - PullRequest
0 голосов
/ 10 июля 2019

У меня есть одна таблица с именем Статистика и Другая с именем Запрос , в таблице запросов я должен приписать: Old_Stat и New_Stat , оба ссылаются на одну и ту же таблицу.Но при использовании Hibernate для установления связи между двумя таблицами, я не знаю, как сказать Hibernate, что эти два атрибута являются внешними ключами в одной и той же таблице Stat.Я хотел бы, чтобы кто-нибудь смог помочь мне исправить эту проблему.

Это мое кодовое предложение:

@Entity
public class Request implements Serializable{
@Id @GeneratedValue
private Integer Request_id;
     ..... 

@ManyToOne
@JoinColumn(name = "stat_id")
private Stat stat_new;

@ManyToOne
@JoinColumn(name = "stat_id")
private Stat stat_old;
}
    /** in The Stat Class **/

@Entity
public class Stat implements Serializable{
@Id @GeneratedValue
private Integer stat_id;
   ..... 

@OneToMany(mappedBy = "stat_old",fetch = FetchType.LAZY)
private Collection<Request> requests;

@OneToMany(mappedBy = "stat_new",fetch = FetchType.LAZY)
private Collection<Request> requestss;

}

1 Ответ

1 голос
/ 10 июля 2019

Это потому, что вы пытаетесь соединить столбец stat_id в вашей сущности Request, а он не существует. Даже если это произойдет, вы не сможете присоединиться к столбцу два раза, если у него нет updateable=false и insertable=false.

Скорее всего, это решит вашу проблему.

@ManyToOne
@JoinColumn(name = "stat_new", referencedColumnName= "stat_id")
private Stat stat_new;

@ManyToOne
@JoinColumn(name = "stat_old", referencedColumnName= "stat_id")
private Stat stat_old;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...