Как определить внешний ключ только в объекте без первичного ключа - PullRequest
0 голосов
/ 24 декабря 2011

привет, мои таблицы следующие:

1- medical_company :

  • medical_company_id внешний ключ on account_entity таблица account_entity_id столбец (не ПК)
  • column1
  • column2
  • column3

2- account_entity :

  • account_entity_id (pk)
  • column1
  • column2
  • column3

СУБЪЕКТЫ:

1- Медицинская компания:

@SuppressWarnings("serial")
@Entity
@Table(name = "medical_company")
public class MedicalCompany implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "medical_company_id", unique = true, nullable = false)
@Basic(fetch = FetchType.EAGER)
private Long id;

}

2- AccountEntity:

@SuppressWarnings("serial")
@Entity
@Table(name = "account_entity")
public class AccountEntity implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "account_entity_id", unique = true, nullable = false)
    @Basic(fetch = FetchType.EAGER)
    private Long id;

}

я хочу сделать medical_company_id в таблице medical_company в качестве внешнего ключа без определения первичного ключа, как это сделать?

Ответы [ 2 ]

1 голос
/ 24 декабря 2011

Сущности должны иметь идентификатор.Это обязательно.Является ли этот идентификатор действительным PK в базе данных или нет, не важно (хотя я не вижу причин не определять его как PK), но идентификатор должен быть неизменным и уникальным во всех строках таблицы.

0 голосов
/ 24 декабря 2011

Hibernate не позволяет определять сущность без PK.Поэтому вы должны объявить medical_company_id в качестве первичного ключа и сделать его внешним ключом для таблицы account_entity.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...