Hi,
if I run my application IntelliJ shows me the following error:
What am I doing wrong here?
Hi,
if I run my application IntelliJ shows me the following error:
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) }
}
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