Обновление

Добрый день!

В приложении есть таблицы связанны через композитные ключи, при этом одна таблица является родительской по отношению к другой. При попытке обновить запись через универсальный rest биндинг ключей осуществляется не корректно. Вместо композитного ключа в конструктор класса SingleValueOwningPropertyHolder в переменную entityId попадает значение одного из полей(в данном случае типа Integer), а не класс композитного ключа PrimaryEntityCompKey.

Для воспроизведения ошибки достаточно запустить тест CreateAndUpdatePrimaryEntityTest
embeddedError.zip (107.7 КБ)


java.lang.IllegalArgumentException: You have attempted to set a value of type class java.lang.Integer for parameter entityId with expected type of class com.company.embeddederror.entity.key.PrimaryEntityCompKey from query string select e from PrimaryEntity e where e.id = :entityId.

at org.eclipse.persistence.internal.jpa.QueryImpl.setParameterInternal(QueryImpl.java:941)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameter(EJBQueryImpl.java:586)
at io.jmix.eclipselink.impl.JmixEclipseLinkQuery$Param.apply(JmixEclipseLinkQuery.java:942)
at io.jmix.eclipselink.impl.JmixEclipseLinkQuery.getQuery(JmixEclipseLinkQuery.java:490)
at io.jmix.eclipselink.impl.JmixEclipseLinkQuery.getSingleResult(JmixEclipseLinkQuery.java:157)
at io.jmix.eclipselink.impl.JpaDataStore.executeQuery(JpaDataStore.java:593)
at io.jmix.eclipselink.impl.JpaDataStore.loadOne(JpaDataStore.java:146)
at io.jmix.core.datastore.AbstractDataStore.load(AbstractDataStore.java:87)
at io.jmix.core.impl.UnconstrainedDataManagerImpl.load(UnconstrainedDataManagerImpl.java:97)
at io.jmix.eclipselink.impl.lazyloading.SingleValueOwningPropertyHolder.loadValue(SingleValueOwningPropertyHolder.java:61)
at io.jmix.eclipselink.impl.lazyloading.AbstractValueHolder.getValue(AbstractValueHolder.java:277)
at com.company.embeddederror.entity.DependentEntity._persistence_get_primaryEntity(DependentEntity.java)
at com.company.embeddederror.entity.DependentEntity.getPrimaryEntity(DependentEntity.java:29)```

Добрый день!

Спасибо, что сообщили о проблеме.

GitHub issue : Cannot update composition with composite key · Issue #3099 · jmix-framework/jmix · GitHub