San Matus (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
) *commented* on HHH-15929 (
https://hibernate.atlassian.net/browse/HHH-15929?atlOrigin=eyJpIjoiYWMwMG...
)
Re: Mapping jsonb of different types in a class inheritance hierarchy does not work. (
https://hibernate.atlassian.net/browse/HHH-15929?atlOrigin=eyJpIjoiYWMwMG...
)
Hi Christian Beikov (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
)
With 6.2.1.Final the original problem still exists.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.hibernate.bugs.JPAUnitTestCase
2023-04-26 13:17:58 INFO LogHelper:31 - HHH000204: Processing PersistenceUnitInfo [name:
templatePU]
2023-04-26 13:17:58 WARN CachingRegionFactory:48 -
org.hibernate.testing.cache.CachingRegionFactory should be only used for testing.
2023-04-26 13:17:58 WARN pooling:80 - HHH10001002: Using built-in connection pool (not
intended for production use)
2023-04-26 13:17:58 INFO pooling:139 - HHH10001005: Loaded JDBC driver class:
org.postgresql.Driver
2023-04-26 13:17:58 INFO pooling:161 - HHH10001012: Connecting with JDBC URL
[jdbc:postgresql://localhost:5432/postgres]
2023-04-26 13:17:58 INFO pooling:170 - HHH10001001: Connection properties:
{password=****, user=postgres}
2023-04-26 13:17:58 INFO pooling:174 - HHH10001003: Autocommit mode: false
2023-04-26 13:17:58 INFO pooling:366 - HHH10001115: Connection pool size: 5 (min=1)
2023-04-26 13:17:58 INFO SQL dialect:95 - HHH000400: Using dialect:
org.hibernate.dialect.PostgreSQLDialect, version:
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$DialectResolutionInfoImpl@17092fff
2023-04-26 13:17:58 INFO BytecodeProviderInitiator:53 - HHH000021: Bytecode provider name
: bytebuddy
2023-04-26 13:17:59 INFO JtaPlatformInitiator:51 - HHH000490: Using JtaPlatform
implementation:
[org.hibernate.engine.transaction.jta.platform.internal.WildFlyStandAloneJtaPlatform]
Hibernate:
drop table if exists table_test cascade
2023-04-26 13:17:59 INFO access:52 - HHH10001501: Connection obtained from
JdbcConnectionAccess
[org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@6650a6c]
for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local
transaction' will be committed and the Connection will be set into auto-commit mode.
Hibernate:
create table table_test (
id bigint not null,
type varchar(31) not null,
property json,
primary key (id)
)
2023-04-26 13:17:59 INFO access:52 - HHH10001501: Connection obtained from
JdbcConnectionAccess
[org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@cbf1997]
for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local
transaction' will be committed and the Connection will be set into auto-commit mode.
2023-04-26 13:17:59 INFO GenerationTargetToDatabase:69 - HHH000476: Executing script
'[injected ScriptSourceInputNonExistentImpl script]'
Hibernate:
select
e1_0.id,
e1_0.property
from
table_test e1_0
where
e1_0.type='A'
and e1_0.id=?
Hibernate:
select
e1_0.id,
e1_0.property
from
table_test e1_0
where
e1_0.type='B'
and e1_0.id=?
Hibernate:
insert
into
table_test
(property,type,id)
values
(?,'A',?)
Hibernate:
insert
into
table_test
(property,type,id)
values
(?,'B',?)
Hibernate:
select
e1_0.id,
e1_0.property
from
table_test e1_0
where
e1_0.type='A'
Hibernate:
select
c1_0.id,
c1_0.type,
c1_0.property
from
table_test c1_0
2023-04-26 13:17:59 INFO pooling:608 - HHH10001008: Cleaning up connection pool
[jdbc:postgresql://localhost:5432/postgres]
2023-04-26 13:17:59 ERROR pooling:470 - Connection leak detected: there are 1 unclosed
connections upon shutting down pool jdbc:postgresql://localhost:5432/postgres
2023-04-26 13:17:59 ERROR pooling:301 - Connection leak detected: there are 1 unclosed
connections
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.465 sec <<<
FAILURE!
hhh15929Test(org.hibernate.bugs.JPAUnitTestCase) Time elapsed: 1.465 sec <<<
ERROR!
java.lang.IllegalArgumentException: Could not deserialize string to java type:
BasicJavaType(org.hibernate.bugs.entities.PropertyTypeA)
at
org.hibernate.type.format.jackson.JacksonJsonFormatMapper.fromString(JacksonJsonFormatMapper.java:42)
at
org.hibernate.type.descriptor.jdbc.JsonJdbcType.fromString(JsonJdbcType.java:86)
at
org.hibernate.dialect.AbstractPostgreSQLJsonPGObjectType.access$200(AbstractPostgreSQLJsonPGObjectType.java:29)
at
org.hibernate.dialect.AbstractPostgreSQLJsonPGObjectType$2.getObject(AbstractPostgreSQLJsonPGObjectType.java:98)
at
org.hibernate.dialect.AbstractPostgreSQLJsonPGObjectType$2.doExtract(AbstractPostgreSQLJsonPGObjectType.java:80)
at
org.hibernate.type.descriptor.jdbc.BasicExtractor.extract(BasicExtractor.java:44)
at
org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.readCurrentRowValues(JdbcValuesResultSetImpl.java:262)
at
org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advance(JdbcValuesResultSetImpl.java:243)
at
org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:84)
at
org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:29)
at
org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:62)
at
org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:198)
at
org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33)
at
org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:362)
at
org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:168)
at
org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.list(JdbcSelectExecutorStandardImpl.java:93)
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:31)
at
org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$0(ConcreteSqmSelectQueryPlan.java:109)
at
org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:302)
at
org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:243)
at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:521)
at
org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:367)
at org.hibernate.query.sqm.internal.QuerySqmImpl.list(QuerySqmImpl.java:1084)
at org.hibernate.query.Query.getResultList(Query.java:119)
at org.hibernate.bugs.JPAUnitTestCase.findFirstOne(JPAUnitTestCase.java:75)
at org.hibernate.bugs.JPAUnitTestCase.hhh15929Test(JPAUnitTestCase.java:56)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized
field "propertyB" (class org.hibernate.bugs.entities.PropertyTypeA), not marked
as ignorable (one known property: "propertyA"])
at [Source: (String)"{"propertyB": 2}"; line: 1, column: 16] (through
reference chain: org.hibernate.bugs.entities.PropertyTypeA["propertyB"])
at
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
at
com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:1132)
at
com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:2202)
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1705)
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1683)
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:320)
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
at
com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
at
com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4730)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3677)
at
org.hibernate.type.format.jackson.JacksonJsonFormatMapper.fromString(JacksonJsonFormatMapper.java:39)
... 59 more
(
https://hibernate.atlassian.net/browse/HHH-15929#add-comment?atlOrigin=ey...
) Add Comment (
https://hibernate.atlassian.net/browse/HHH-15929#add-comment?atlOrigin=ey...
)
Get Jira notifications on your phone! Download the Jira Cloud app for Android (
https://play.google.com/store/apps/details?id=com.atlassian.android.jira....
) or iOS (
https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=Em...
) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100223- sha1:038ca59 )