Spring Boot Hibernate - PullRequest
       0

Spring Boot Hibernate

0 голосов
/ 06 марта 2020

Я использую интеграцию hibernate с весенней загрузкой. Я делаю сопоставление один к одному. Но я получаю ошибку при сохранении данных. Запрос выполняется правильно, но значение внешнего ключа во внешней таблице не передается из основной таблицы. Ниже приведено описание два класса, которые я использую.

@Entity
@Table(name="PERSON")
public class PersonEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "person_generator")
    @SequenceGenerator(name="person_generator", sequenceName = "PERSON_SEQ",allocationSize=1)
    private Long p_id;

    @Column(name="p_name")
    private String pName;   

    @OneToOne(cascade = {CascadeType.ALL},mappedBy="person")
    private PassportEntity passport;

    public PassportEntity getPassport() {
        return passport;
    }

    public void setPassport(PassportEntity passport) {
        this.passport = passport;
    }

    public Long getP_id() {
        return p_id;
    }

    public void setP_id(Long p_id) {
        this.p_id = p_id;
    }

    public String getpName() {
        return pName;
    }

    public void setpName(String pName) {
        this.pName = pName;
    }
}

@Entity
@Table(name="PASSPORT")
public class PassportEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "passport_generator")
    @SequenceGenerator(name="passport_generator", sequenceName = "PASSPORT_SEQ",allocationSize=1)
    private Long passport_No;

    @Column(name="country")
    private String country;

    @OneToOne(cascade = {CascadeType.ALL})
    @JoinColumn(name = "p_id")
    private PersonEntity person;

    public Long getPassport_No() {
        return passport_No;
    }

    public void setPassport_No(Long passport_No) {
        this.passport_No = passport_No;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }   
}

Я получаю ниже запроса об ошибке, но значение p_id не передается из таблицы персонажа в столбец p_id таблицы паспортов.

Hibernate: выберите person_seq.nextval из двойной Hibernate: выберите passport_seq.nextval из dual Hibernate: вставьте в значения person (p_name, p_id) (?,?) 2020-03-06 22:45:07 - параметр привязки [1] как [VARCHAR] - [Аджай Кумар] 2020-03-06 22:45:07 - параметр привязки [2] как [BIGINT] - [11] Hibernate: вставить в паспорт (страна, p_id, passport_no) значения (?,?,?) 2020 -03-06 22:45:07 - параметр привязки [1] как [VARCHAR] - [Индия] 2020-03-06 22:45:07 - параметр привязки [2] как [BIGINT] - [ноль] 2020-03 -06 22:45:07 - параметр привязки [3] как [BIGINT] - [27] 2020-03-06 22:45:07 - SQL Ошибка: 1400, SQLState: 23000 2020-03-06 22:45:07 - ORA-01400: невозможно вставить NULL в ("DTV". "PASSPORT". "P_ID")

Может кто-нибудь помочь мне, в чем может быть проблема.

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