Связь OneToMany с использованием EmbeddedId и Embeddable - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь создать две таблицы State и Districts, каждая из которых связана с OnetoMany (State имеет несколько округов), и я использую следующие свойства, чтобы позволить Spring автоматически создавать таблицы из определенных java сущностей

spring.jpa.hibernate.ddl-auto=create
spring.jpa.generate-ddl=true

Здесь StateEntity class

@Table(name="STATE")
@Entity
public class StateEntity {

    @EmbeddedId
    private StateIdentity stateIdentity;
    @OneToMany(cascade = CascadeType.ALL,mappedBy = "state" )
    private Set<DistrictEntity> districtSet;
    ....FOLLOWED BY GETTERS/SETTERS
}

Здесь StateIdentity class;

@Embeddable
public class StateIdentity implements Serializable{
    private static final long serialVersionUID = 3209414245070180550L;
    private int stateId;
    ....FOLLOWED BY GETTERS/SETTERS
}

Здесь DistrictEntity класс

@Entity
@Table(name = "DISTRICT")
public class DistrictEntity {

    @EmbeddedId
    private DistrictIdentity districtIdentity;
    private StateEntity state;
    @ManyToOne
    @JoinColumn(name="STATE_ID", nullable=false)
    public StateEntity getState() {
        return state;
    }
    ....FOLLOWED BY GETTERS/SETTERS
}

Вот класс DistrictIdentity ;

@Embeddable
public class DistrictIdentity implements Serializable{
    private static final long serialVersionUID = -7120909854467388901L;
    private int districtId;
    ....FOLLOWED BY GETTERS/SETTERS
}

Приложение работает нормально и создает таблицы, но Отношение один ко многим отсутствует. Пожалуйста, помогите.

...