Композитный ключ JPA, содержащий иностранный ключ со DB-сгенерированным значениемJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Композитный ключ JPA, содержащий иностранный ключ со DB-сгенерированным значением

Сообщение Anonymous »

схема < /h4>

Код: Выделить всё

CREATE TABLE Template (
id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
-- omitted
);

CREATE TABLE TemplateLabel (
template_id UUID REFERENCES Template(id) ON DELETE CASCADE,
code TEXT NOT NULL,
-- omitted

PRIMARY KEY (template_id, code)
);
< /code>
Шаблон имеет отношение к одно-кому с TemplateLabel. TemplateLabel использует Template.id и код в качестве составного первичного ключа. .java: < /p>
@Entity
public class Template {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;

@OneToMany(mappedBy = "template", cascade = CascadeType.ALL, orphanRemoval = true)
private List labels;
}
< /code>
templateLabel.java:
 написан@Entity
public class TemplateLabel {
@EmbeddedId
private TemplateLabelId id;

@ManyToOne(fetch = FetchType.LAZY)
@MapsId("templateId")
@JoinColumn(name = "template_id")
private Template template;
}
< /code>
templateLabelid.java:
@Embeddable
public class TemplateLabelId {
@Column(name = "template_id")
private UUID templateId;

private String code;
}
< /code>
 проблема < /h4>
Я хотел бы генерировать идентификаторы из базы данных, а не из кода, и предпочтительно настроить объекты таким образом, чтобы, чтобы, чтобы, чтобы, чтобы, чтобы Я могу вставить шаблон и некоторые метки шаблонов в базу данных только с одним вызовом к репозиторию. -Пописывают его некоторыми метками (каждая с id.templateid = null) и просто вызовет репозиторие. Шаблон для получения идентификатора, сгенерированного DB, а затем Manully присваивает этот идентификатор всем меткам, а затем вызовет репозиторию. /p>

вызван: java.lang.illegalargumentException: не может установить java.util.uuid field my.project.entity.templateLabelid.templateid to org.hibernate.id .IdentIfierGeneratorHelper $ 1

Я видел то же исключение, которое обсуждалось в другом посте, но решение было использовать @embeddedid 
, которое я уже уже Использование, поэтому мне интересно, что еще я должен изменить в своих сущностях. Мой класс TemplateLabel необходим.
однонаправленное связывание, вероятно, предпочтительнее, так как никогда не будет случая, когда я бы получил метку самостоятельно, но я не уверен, смогу ли я достичь одного хранилища. объяснил выше без него. Я также хотел бы удалить его и просто использовать Uuid, если смогу, чтобы все было просто. Но это более незначительная проблема (и кажется, что это тоже может быть менее эффективным?).

Подробнее здесь: https://stackoverflow.com/questions/794 ... ated-value
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Композитный ключ JPA, содержащий иностранный ключ со DB-сгенерированным значением
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Иностранный ключ не найден с JPA
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Иностранный ключ (департамент_ид) не найден с помощью JPA Spring [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Java: композитный ключ в Hashmaps
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Выберите (композитный) первичный ключ из таблицы
    Anonymous » » в форуме MySql
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»