С Eclipselink/JPA у меня может быть Внешний Составной ключ, который совместно использует поле с Основным Составным ключом?

Это было просто выпущено также: http://codeplex.com/SnippetDesigner

Разработчик Отрывка является плагином, который улучшает IDE Visual Studio для разрешения более богатого и более продуктивного опыта фрагмента кода...

Функции

А редактор Snippet, интегрированный в IDE, который поддерживает C#, Visual Basic, JavaScript, HTML, XML и получает доступ SQL

  • к нему путем открытия любого .snippet файла или движения в Файл-> Новый-> Файл-> Файл
  • Фрагмента кода, Это использует собственный редактор кода Visual Studio так, чтобы можно было записать отрывки в том же enviorment, который Вы пишете своему коду.
  • Это позволяет Вам легко отметить замены удобным меню правой кнопки.
  • Это отображает свойства отрывка в окне свойств Visual Studio...

окно инструментов Проводника Отрывка А для поиска отрывков на компьютере.

  • Это расположено при Представлении-> Другой Windows-> Проводник Отрывка
  • , Это окно инструментов содержит окно предварительного просмотра кода, которое позволяет для заглядывания в отрывке для наблюдения то, что это, не открывая файл.
  • Поддерживает индекс отрывков на Вашем компьютере для быстрого поиска.
  • Обеспечивает быстрый способ найти, что фрагмент кода использует, редактирует или удаляет...

5
задан user107924 8 July 2009 в 21:46
поделиться

2 ответа

У меня была такая же проблема. И решение, которое я нашел, - пометить поля первичного ключа как невставляемые и не обновляемые. Ваше физическое лицо должно выглядеть так:

@Entity
@Table(name = "PERSON")
@IdClass(PersonPK.class)
public class Person
    implements Serializable {

  @Id
  @Column(insertable = false, updatable=false)
  private String owner;

  @Id
  private String personid;

  @Id
  @Column(insertable = false, updatable=false)
  private String comp_id;


  @ManyToOne
  @JoinColumns({
     @JoinColumn(name = "owner", referencedColumnName = "OWNER"),
     @JoinColumn(name = "comp_id", referencedColumnName = "COMP_ID")
  })
  private Company company;

  private String p_fname;

  private String p_sname;

  ...and standard getters/setters...
}
1
ответ дан 14 December 2019 в 19:22
поделиться

Я сделал это так, чтобы аннотировать поля в классе PK, как если бы они были в сущности.

Тогда в сущности нет полей PK класс держится. Если вы хотите, вы можете реализовать геттеры, которые проходят через

class Person {
  .....

private PersonPK pk;

@Id
public PersonPK getPk() { return pk; }

@Transient
public String getOwner() {
  return pk.getOwner();
}
....
}

. PersonPK должен быть сериализуемым и аннотированным @Embeddable

@Embeddable
class PersonPK implements Serializable {
0
ответ дан 14 December 2019 в 19:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: