JPA HIbernate отсутствует столбец в созданном классе - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть сущность с 2 внешними ключами. Этот класс генерируется

@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
@StaticMetamodel(DcDataDomaninDs.class)
public abstract class DcDataDomaninDs_ {
    public static volatile SingularAttribute<DcDataDomaninDs, Integer> id;
    public static volatile SingularAttribute<DcDataDomaninDs, DatasetType> datasetType;

}

Класс сущности, из которого это сгенерировано, находится ниже. Я не вижу, что я сделал по-разному между datasetType и dataDomain. Я упустил другие простые столбцы, так как они работают нормально.

@Entity
@Table(name = "DC_DATA_DMN_DS")
public class DcDataDomaninDs implements Serializable {

    private static final long serialVersionUID = 1L;

    public DcDataDomaninDs() {
    }

    @Id
    @Column(name="DMN_DS_ID")
    private int id;


    private DataDomain dataDomain;


    private DatasetType datasetType;

    public int getId() {
        return id;
    }

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

    @ManyToOne
    @JoinColumn(name="DATA_DMN_CD")
    public DataDomain getDataDomain() {
        return dataDomain;
    }

    public void setDataDomain(DataDomain dataDomain) {
        this.dataDomain = dataDomain;
    }

    @ManyToOne
    @JoinColumn(name="DS_TYP_CD")
    public DatasetType getDatasetType() {
        return datasetType;
    }

    public void setDatasetType(DatasetType datasetType) {
        this.datasetType = datasetType;
    }

}

оба сгенерированных класса DataDomain_ и DatasetType_ содержат наборы этого присоединяемого класса

public static volatile SetAttribute<DataDomain, DcDataDomaninDs> dataDomainDs;
public static volatile SetAttribute<DatasetType, DcDataDomaninDs> dataDomainDs;

В соответствии с запросом приведено сопоставление отсутствующего объекта

@Entity
@Table(name = "DC_DATA_DMN")
public class DataDomain {

    @Id
    @Column(name = "DATA_DMN_CD",updatable = false,insertable = false, nullable = false, length = 30)
    private String code;

    @Column(name = "DATA_DMN_NM", nullable = false, length = 100)
    private String name;

    private Set<DcDataDomaninDs> dataDomainDs;

    @OneToMany( mappedBy = "dataDomain")
    public Set<DcDataDomaninDs> getDataDomainDs() {
        return dataDomainDs;
    }

Я попытался запустить тест, который не нуждался в пропущенном значении, и получил этот ответ

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 12.979 sec <<< FAILURE! - in .dao.DataDomainDsIT
testListAll(.dao.DataDomainDsIT)  Time elapsed: 8.404 sec  <<< ERROR!

org.unitils.core.UnitilsException: Method DataDomainDsIT.public org.springframework.context.ConfigurableApplicationContext .dao.DataDomainDsIT.createApplicationContext() (annotated with SpringApplicationContext) has thrown an exception
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:336)

1 Ответ

0 голосов
/ 13 сентября 2018

Класс DataDomain не был сериализуем, вот и все.

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