JPA: связь с другим столбцом, кроме id - PullRequest
2 голосов
/ 28 апреля 2011

Когда я делаю отношение один к одному с сущностями, JPA использует идентификатор для регистрации цели;но я должен хотеть другую колонку.Как это возможно?

Например, у меня есть две сущности:

@Entity
public class Target
{
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private String id;

  @Column(unique=true, nullable=false)
  private String code;

 // and so on 
}

Это таблица с идентификаторами столбцов и CODE.

Второй объект со ссылкой на Coder:

@Entity
public class ToTarget
{
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private String id;

 private Target targeted;

 // and so on 
}

Это таблица с идентификатором столбца и TARGET_ID.В TARGET_ID у меня есть некоторый идентификатор из идентификатора столбца в таблице Target.

Все хорошо, но мне нужно, чтобы в TARGET_ID было какое-то значение кода из таблицы Coder.Как это возможно?

Спасибо.

1 Ответ

3 голосов
/ 28 апреля 2011

Используйте атрибут referencedColumnName аннотации @JoinColumn. Я не уверен, что это поддерживается стандартом, хотя. Это может работать в некоторых реализациях, а не в других.

См. http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#entity-mapping-association для Hibernate и http://openjpa.apache.org/builds/2.1.0/apache-openjpa-2.1.0/docs/manual/manual.html#ref_guide_mapping_notes_nonstdjoins для OpenJPA.

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