-
Notifications
You must be signed in to change notification settings - Fork 3.6k
HHH-17404 : Add support of reading/writing from/to special source/target in FormatMapper #9629
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Thanks for your pull request! This pull request appears to follow the contribution rules. › This message was automatically generated. |
hibernate-core/src/main/java/org/hibernate/dialect/JsonHelper.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonArrayJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonArrayJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonArrayJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/ObjectArrayOsonDocumentWriter.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/jackson/JacksonOsonFormatMapper.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonArrayJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonDocumentReader.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonDocumentReader.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonDocumentWriter.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/JsonHelper.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/JsonHelper.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonDocumentWriter.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonDocumentWriter.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonDocumentWriter.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonDocumentWriter.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonDocumentReader.java
Outdated
Show resolved
Hide resolved
7f6496b
to
c964ad8
Compare
hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/aggregate/OracleAggregateSupport.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonArrayJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonArrayJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/JsonHelper.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/StringJsonDocumentReader.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/aggregate/OracleAggregateSupport.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonArrayJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/StringJsonDocumentReader.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/dialect/OracleOsonJacksonArrayJdbcType.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/test/java/org/hibernate/orm/test/mapping/hhh17404/JsonCBLOBToOsonTest.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/test/java/org/hibernate/orm/test/mapping/hhh17404/JsonCBLOBToOsonTest.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/jackson/JacksonJsonFormatMapper.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonValueJDBCTypeAdapter.java
Outdated
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/OsonValueJDBCTypeAdapter.java
Show resolved
Hide resolved
hibernate-core/src/main/java/org/hibernate/type/format/StringJsonDocumentReader.java
Fixed
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All major concerns should be addressed, CI is green except for oracle_atps
that is failing for unrelated reasons. The PR look good to me, thanks @ejannett and @BidyadharM!
...-core/src/test/java/org/hibernate/orm/test/mapping/hhh17404/OracleOsonCompatibilityTest.java
Show resolved
Hide resolved
@@ -0,0 +1,279 @@ | |||
/* | |||
* SPDX-License-Identifier: Apache-2.0 | |||
* Copyright Red Hat Inc. and Hibernate Authors |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ejannett please add the Oracle Copyright to all your contributions:
Copyright © 2025, Oracle and/or its affiliates.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @jeandelavarene this is not a normal practice in OSS development. (For example, I don't change the Oracle copyright headers of files in the Jakarta Persistence project when I make contributions.) If Oracle wants to add foreign copyright headers to Hibernate source code, then that's something we'll need to discuss, and I need you to understand going into that discussion that it would be highly irregular and we simply might not agree to it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ejannett please add the Oracle Copyright to all files you modify:
Copyright © 2025, Oracle and/or its affiliates.
Hey @ejannett @jeandelavarene , as discussed offline, there is now an We'll probably change/remove the headers at some point, but AFAIU this is not absolutely required for your contribution. Thanks again for your work and your help. |
…IMESTAMP_WITH_TIMEZONE.
removed some unchecked cast warning
This PR brings code changes needed by HHH-17404.
This adds the support of Oracle OSON (JSON binary format) to Hibernate allowing improved performance over
JSON to String conversions.
Two new types are defined
org.hibernate.dialect.OracleOsonJacksonJdbcType
and
org.hibernate.dialect.OracleOsonJacksonArrayJdbcType
The support of OSON is enabled by adding the Oracle JDBC extension jar as runtime dependency.
New capabilities in FormatMapper interface have been added to support the serialization and deserialization from different sources (OSON bytes, JSON String representation ,etc..).
The entire hibernate-core test suite has been successfully run with and without the enablement of OSON.
This has been done by adding/removing the Oracle JDBC extension in hibernate-testing project build file
The hibernate.dialect.oracle.oson_format_disabled new dialect settings has been also tested. With that
setting set to true in hibernate.properties file the extension is not used.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license
and can be relicensed under the terms of the LGPL v2.1 license in the future at the maintainers' discretion.
For more information on licensing, please check here.
https://hibernate.atlassian.net/browse/HHH-17404
https://hibernate.atlassian.net/browse/HHH-14707