JPA / Hibernate Сохранить ребенка с помощью составного ключа, который зависит от родителя - PullRequest
2 голосов
/ 19 января 2012

Я ищу способ сохранить, где база данных генерирует Id (@GeneratedValue) и это значение будет каскадно добавлено к дочернему объекту, который является частью составного ключа. Допустим, у нас есть следующее Parent:

@Entity
@Table("PARENT")
public class Parent {

    private long id;
    private List<Child> children;

    @Id
    @GeneratedValue
    @Column(name="...")
    public long getId() {
        return this.id
    }

    public void setId(long id) {
        this.id = id;
    }

    @OneToMany(mappedBy="key.parent", cascade= { CascadeType.ALL })
    public List<Child> getChildren() {
        return this.children;
    }
}

с ребенком:

@Entity
@Table("CHILD")
public class Child {
    private CompositeKey key;
    private String value;

    @EmbeddedId
    public CompositeKey getKey() {
        return this.key
    }

    public void setKey(CompositeKey key) {
        this.key = key;
    }

    // .. basic mapping of value column

}

и составной ключ:

@Embeddable
public class CompositeKey key {
    private String type;
    private Parent parent;

    @Column(name="TYPE")
    public String getType() {
        return this.type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @ManyToOne
    @JoinColumn("PARENT_ID") // FK in the Child table
    public Parent getParent() {
        return this.parent;
    }

    public void setParent(Parent parent) {
        this.parent = parent;
    }
}

Кто-нибудь знает, как это может работать, где идентификатор для Parent может быть сохранен и установлен как часть FK в Child как часть CompositeKey

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