Плавающая ошибка при сохранении полей сущности типа UUID

Коллеги, добрый день!
Столкнулся с плавающей ошибкой при сохранении полей сущности типа UUID. Пока не могу определить из-за чего она возникает. Может кто-то уже сталкивался и знает как её избежать. Возникает при сохранении сущности с атрибутом типа UUID. В момент сохранения возникает Exception при конвертации типов. Ошибка возникает не всегда. Возникает после очередного перезапуска приложения. Лечится перезапуском. Но потом, после очередного перезапуска, снова проявляется. Наблюдаю её на БД HSQLDB в тестах и на тестовых контурах с БД Oracle. Ошибка возникает где-то в недрах библиотеки org.eclipse.persistence.core-2.7.9-6-jmix.jar. Например, есть сущность с полем типа UUID:

@JmixEntity
@Entity(name = "cdi_InventoryItemULError")
@Table(name = "CDI_INVENTORY_ITEM_UL_ERROR")
public class InventoryItemULError {

    @Column(name = "PARENT_ITEM_ID")
    private UUID parentId;
}

Пример ошибки при сохранении такой сущности:

Exception [EclipseLink-3002] (Eclipse Persistence Services - 2.7.9.6-jmix): org.eclipse.persistence.exceptions.ConversionException
Exception Description: The object [9007dc94-8b43-d04e-e230-66409ee86fae], of class [class java.lang.String], from mapping [org.eclipse.persistence.mappings.DirectToFieldMapping[parentId-->CDI_INVENTORY_ITEM_UL_ERROR.PARENT_ITEM_ID]] with descriptor [RelationalDescriptor(ru.psb.cdi.jmix.entity.ul.InventoryItemULError --> [DatabaseTable(CDI_INVENTORY_ITEM_UL_ERROR)])], could not be converted to [class java.util.UUID]

Вот StackTrace этой ошибки

Caused by: org.eclipse.persistence.exceptions.ConversionException: 

	at org.eclipse.persistence.exceptions.ConversionException.couldNotBeConverted(ConversionException.java:81)
	at org.eclipse.persistence.internal.helper.ConversionManager.convertObject(ConversionManager.java:253)
	at org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.convertObject(DatasourcePlatform.java:226)
	at org.eclipse.persistence.mappings.foundation.AbstractDirectMapping.getFieldValue(AbstractDirectMapping.java:798)
	at org.eclipse.persistence.mappings.foundation.AbstractDirectMapping.writeFromObjectIntoRow(AbstractDirectMapping.java:1314)
	at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildRow(ObjectBuilder.java:1608)
	at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildRow(ObjectBuilder.java:1596)
	at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:466)
	at org.eclipse.persistence.queries.InsertObjectQuery.executeCommit(InsertObjectQuery.java:82)
	at org.eclipse.persistence.queries.InsertObjectQuery.executeCommitWithChangeSet(InsertObjectQuery.java:92)
	at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:316)
	at org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:60)
	at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:911)
	at org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:810)
	at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:110)
	at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:87)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:3043)
	at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1895)
	at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1877)
	at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1827)
	at org.eclipse.persistence.internal.sessions.CommitManager.commitNewObjectsForClassWithChangeSet(CommitManager.java:229)
	at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:128)
	at org.eclipse.persistence.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:4406)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1499)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithPreBuiltChangeSet(UnitOfWorkImpl.java:1645)
	at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.writeChanges(RepeatableWriteUnitOfWork.java:457)
	at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:979)

какой тип у колонки PARENT_ITEM_ID?
desc CDI_INVENTORY_ITEM_UL_ERROR;

В HSQLDB тип колонки UUID. Я пробовал делать varchar(36) - не помогло.
В Oracle вариантов нет - там varchar2(32)

в Oracle варианты есть, в зависимости от версии.
а точно у тебя там строка способная в UUID?

Получилось воспроизвести проблему на тестовом проекте. Версия Jmiх правда не самая свежая, но свежей пока у меня нет. Чтобы воспроизвести проблему, нужно запустить тесты. Возможно, воспроизведётся не с первого раза. У меня довольно стабильно воспроизводится.
uuidattr.zip (82.8 КБ)

Проверил на послдней на данный момент версии 1.4.4. Проблема имеет место быть

Добрый день, коллеги!

Похоже на баг, завел тикет, спасибо, что заметили ошибку и предоставили пример для ее воспроизведения!

Так же хотелось бы заметить, что односторонние (unidirectional) отношения, с которыми и возникает данная проблема, лучше не использовать в Jmix, поскольку многие механизмы полагаются на наличие двунаправленной связи между сущностями.
Некоторые, но далеко не все примеры: мягкое удаление и восстановление после него, generic-фильтр, кэши сущностей (своевременный сброс при изменении связанной сущности) могут работать некорректно.

С уважением,
Дмитрий