簡體   English   中英

一個實體上有兩個關系

[英]two relations on one entity, jhipster

我有這個模型,我試圖在jhipster 4和JDLStudio上創建模型以生成實體。

entity Cliente{
    nombre String,
    apellido String,
    celular String,
    telefono String,
    email String,
    domicilio String,
    colegio String
}

entity Modelo{
    imagen ImageBlob,
    nombreModelo String,
    colorVestido String,
    observacion String
}

entity Medida{
    contornoBusto Double,
    anchoPecho Double,
    altoBusto Double,
    bajoBusto Double,
    alturaPinza Double,
    separacionBusto Double,
    talleDeltantero Double,
    talleEspalda Double,
    largoCorset Double,
    costado Double,
    hombro Double,
    anchoHombro Double,
    largoManga Double,
    sisa Double,
    cintura Double,
    anteCadera Double,
    cadera Double,
    largoPollera Double,
    fechaMedida LocalDate
}

entity Dominio{
    descripcion String
}
entity ValorDominio{
    descripcion String
}

entity Encargo{
    importeTotal Double,
    fechaEncargo LocalDate,
    fechaEntrega LocalDate,
    detalleVestido String
}

entity Pago{
    fechaPago LocalDate,
    importe Double,
    detalle String,
    numeroRecibo Integer
}


/**
  * Relacion Una empresa tiene uno o muchos usuarios
  */
relationship OneToMany {
    Cliente{modelo(nombre)} to Modelo,
    Cliente{medida(nombre)} to Medida,
    Cliente{encargo(nombre)} to Encargo,
    Encargo{pago} to Pago,
    Dominio{valorDominio(descripcion)} to ValorDominio,
    ValorDominio{tipoEvento(descripcion)} to Encargo,
    ValorDominio{estado(descripcion)} to Encargo
}

/**relationship OneToOne{
 *Cliente{user} to User{cliente}
 *}
 */


paginate Cliente with infinite-scroll

但是當我運行該應用程序時,出現此錯誤

Migration failed for change set classpath:config/liquibase/changelog/20170313030953_added_entity_Encargo.xml::20170313030953-1::jhipster:
     Reason: liquibase.exception.DatabaseException: Duplicate column name 'valor_dominio_id' [Failed SQL: CREATE TABLE Clothes.encargo (id BIGINT AUTO_INCREMENT NOT NULL, importe_total DOUBLE NULL, fecha_encargo date NULL, fecha_entrega date NULL, detalle_vestido VARCHAR(255) NULL, cliente_id BIGINT NULL, valor_dominio_id BIGINT NULL, valor_dominio_id BIGINT NULL, CONSTRAINT PK_ENCARGO PRIMARY KEY (id))]
    at liquibase.changelog.ChangeSet.execute(ChangeSet.java:619)

而我的實體Encargo是:

私有靜態最終長serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "importe_total")
private Double importeTotal;

@Column(name = "fecha_encargo")
private LocalDate fechaEncargo;

@Column(name = "fecha_entrega")
private LocalDate fechaEntrega;

@Column(name = "detalle_vestido")
private String detalleVestido;

@ManyToOne
private Cliente cliente;

@ManyToOne
private ValorDominio tipoEvento;

@ManyToOne
private ValorDominio estado;

@OneToMany(mappedBy = "encargo")
@JsonIgnore
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<Pago> pagos = new HashSet<>();

我的變更日志是:

<column name="valor_dominio_id" type="bigint" >
     <constraints nullable="true" />
</column>

<column name="valor_dominio_id" type="bigint">
     <constraints nullable="true" />
</column>

屬性是:

@ManyToOne
private ValorDominio tipoEvento;

@ManyToOne
private ValorDominio estado;

我等待你的回答。

錯誤是,映射1 :: n的正確方法是通過給多端提供“ entity_id”列。 您的JDL指出了從ValorDominoEncargo的單向關系,而ValorDomino是擁有者。 因此, Encargo因此沒有引用實體的視圖,並且到目前為止還沒有辦法區分它。 這導致您得到錯誤。

嘗試將關系移至an:1定義:

relationshop ManyToOne {
    Encargo{tipoEventoEncargo} to ValorDominio,
    Encargo{estadoEncargo} to ValorDominio
}

因此,與envalgo上的valor domino的連接列將有所不同

感謝您的回答,即時通訊正在嘗試您的方法,但無法正常工作,

我嘗試與此並工作正常,但現在我不得不更改視圖上的get方法以對不同的selectItems收取不同的數據

ValorDominio{tipoEvento(descripcion)} to Encargo{tipoEcargo(descripcion)},
ValorDominio{estado(descripcion)} to Encargo{estado(descripcion)}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM