Changelog Generation Error

Hi,

if I run my application IntelliJ shows me the following error:

grafik

What am I doing wrong here?

Hi,
Could you provide the source code of the entity?

Yes! Here is the code:

RatePositions.kt (which causes the error)

package com.company.ratemanagement.entity

import io.jmix.core.metamodel.annotation.JmixEntity
import java.util.*
import javax.persistence.*

@JmixEntity
@Table(name = "RATEPOSITIONS")
@Entity
open class RatePositions : Rates() {

    @Column(name = "RATE_POS_ID")
    var ratePosID: UUID? = null

    @JoinColumn(name = "RATE_LINK_ID")
    @ManyToOne(fetch = FetchType.LAZY)
    var rateLinkID: Rates? = null

    @Column(name = "RATE_POS_QUANTITY")
    var ratePosQuantity: Int? = null

    @Column(name = "RATE_POS_CARGO_TYPE")
    private var ratePosCargoType: String? = null

    @Column(name = "RATE_POS_CARGO_DESCRIPTION1", length = 100)
    var ratePosCargoDescription: String? = null

    @Column(name = "RATE_POS_CARGO_DESCRIPTION2", length = 100)
    var ratePosCargoDescription2: String? = null

    @Column(name = "RATE_POS_LENGTH")
    var ratePosLength: Double? = null

    @Column(name = "RATE_POS_WIDTH")
    var ratePosWidth: Double? = null

    @Column(name = "RATE_POS_HEIGHT")
    var ratePosHeight: Double? = null

    @Column(name = "RATE_POS_WEIGHT")
    var ratePosWeight: Double? = null

    @Column(name = "RATE_POS_OPTION")
    var ratePosOption: String? = null

    fun setRatePosCargoType(ratePosCargoType: CargoType?) {
        this.ratePosCargoType = ratePosCargoType?.id
    }

    fun getRatePosCargoType(): CargoType? = ratePosCargoType?.let { CargoType.fromId(it) }
}

Parent table Rates.kt

package com.company.ratemanagement.entity

import io.jmix.core.entity.annotation.JmixGeneratedValue
import io.jmix.core.metamodel.annotation.JmixEntity
import io.jmix.data.impl.lazyloading.NotInstantiatedList
import org.springframework.data.annotation.CreatedBy
import org.springframework.data.annotation.CreatedDate
import org.springframework.data.annotation.LastModifiedBy
import org.springframework.data.annotation.LastModifiedDate
import java.util.*
import javax.persistence.*
import javax.validation.constraints.NotNull

@JmixEntity
@Table(name = "RATES")
@Entity
open class Rates {
    @JmixGeneratedValue
    @Column(name = "RATE_ID", nullable = false)
    @Id
    var rateID: UUID? = null

    @Column(name = "RATE_HUMAN_ID")
    var rateHumanID: Int? = null

    @Column(name = "RATE_COMPANY_EXT_NUMBER")
    var rateCompanyExtNumber: Int? = null

    @Column(name = "RATE_COMPANY1", nullable = false, length = 100)
    @NotNull
    var rateCompany1: String? = null

    @Column(name = "RATE_COMPANY2", length = 100)
    var rateCompany2: String? = null

    @Column(name = "RATE_CONTACT_PERSON", length = 100)
    var rateContactPerson: String? = null

    @Column(name = "RATE_PHONE", length = 50)
    var ratePhone: String? = null

    @Column(name = "RATE_EMAIL", length = 50)
    var rateEmail: String? = null

    @Column(name = "RATE_DATE", nullable = false)
    @Temporal(TemporalType.DATE)
    @NotNull
    var rateDate: Date? = null

    @Column(name = "RATE_LOAD_COUNTRY", length = 10)
    var rateLoadCountry: String? = null

    @Column(name = "RATE_LOAD_POSTCODE", length = 10)
    var rateLoadPostcode: String? = null

    @Column(name = "RATE_LOAD_CITY", length = 100)
    var rateLoadCity: String? = null

    @Column(name = "RATE_UNLOAD_COUNTRY", length = 10)
    var rateUnloadCountry: String? = null

    @Column(name = "RATE_UNLOAD_POSTCODE", length = 10)
    var rateUnloadPostcode: String? = null

    @Column(name = "RATE_UNLOAD_CITY", length = 100)
    var rateUnloadCity: String? = null

    @Column(name = "RATE_LOAD_START", length = 50)
    var rateLoadStart: String? = null

    @Column(name = "RATE_LOAD_END", length = 50)
    var rateLoadEnd: String? = null

    @Lob
    @Column(name = "RATE_REMARK_PUBLIC")
    var rateRemarkPublic: String? = null

    @Lob
    @Column(name = "RATE_REMARK_PRIVATE")
    var rateRemarkPrivate: String? = null

    @Column(name = "RATE_PRICE")
    var ratePrice: Double? = null

    @Column(name = "RATE_CURRENCY")
    private var rateCurrency: String? = null

    @Column(name = "RATE_ORDER_RECEIVED")
    var rateOrderReceived: Boolean? = null

    @OneToMany(mappedBy = "rateLinkID")
    var ratePositions: MutableList<RatePositions> = NotInstantiatedList()

    @CreatedBy
    @Column(name = "CREATED_BY")
    var createdBy: String? = null

    @CreatedDate
    @Column(name = "CREATED_DATE")
    @Temporal(TemporalType.TIMESTAMP)
    var createdDate: Date? = null

    @LastModifiedBy
    @Column(name = "LAST_MODIFIED_BY")
    var lastModifiedBy: String? = null

    @LastModifiedDate
    @Column(name = "LAST_MODIFIED_DATE")
    @Temporal(TemporalType.TIMESTAMP)
    var lastModifiedDate: Date? = null

    fun setRateCurrency(rateCurrency: Currencies?) {
        this.rateCurrency = rateCurrency?.id
    }

    fun getRateCurrency(): Currencies? = rateCurrency?.let { Currencies.fromId(it) }
}
1 Like

Hi,

Thanks for reporting the problem.
I’ve reproduced the problem, seems to be a bug in the Studio. The YouTrack issue created, so you can follow the progress.

After investigation I’ve found that issue caused by invalid entities declarations. You have RatePositions entity that inherits Rates entity and no inheritance strategy specified. So SINGLE_TABLE strategy is used by default. But child entity RatePositions has @Table annotation declared. So you need to change inheritance strategy if you want entities to have separate tables or remove @Table annotation from child entity.

Thank you. This was the solution. I removed the @Table annotation from child entity