[
https://issues.apache.org/jira/browse/IGNITE-3429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15852642#comment-15852642
]
Cameron Braid commented on IGNITE-3429:
---------------------------------------
For hibernate 5 since CacheKey doesn't exist, use the following :
{code}
BinaryConfiguration bCfg = new BinaryConfiguration();
BinaryTypeConfiguration btCfg = new BinaryTypeConfiguration();
// must be a string since class is not public
btCfg.setTypeName("org.hibernate.cache.internal.OldCacheKeyImplementation");
btCfg.setIdentityResolver(new BinaryAbstractIdentityResolver() {
@Override protected int hashCode0(BinaryObject obj) {
return obj.field("id").hashCode();
}
@Override protected boolean equals0(BinaryObject o1, BinaryObject
o2) {
Object obj0 = o1.field("id");
Object obj1 = o2.field("id");
return Objects.equals(obj0, obj1);
}
});
bCfg.setTypeConfigurations(Collections.singleton(btCfg));
igniteConfig.setBinaryConfiguration(bCfg);
{code}
> org.hibernate.cache.spi.CacheKey not properly serialized by binary marshaller
> -----------------------------------------------------------------------------
>
> Key: IGNITE-3429
> URL: https://issues.apache.org/jira/browse/IGNITE-3429
> Project: Ignite
> Issue Type: Bug
> Components: cache, Hibernate L2 cache
> Affects Versions: 1.6
> Reporter: Valentin Kulichenko
> Priority: Critical
> Fix For: 2.0
>
>
> {{org.hibernate.cache.spi.CacheKey}} is a class used as a key for all entries
> in the Hibernate L2 cache. This class contains {{type}} field and custom
> {{equals}} logic where the type is used as a helper and does not participate
> in comparison. Instances of the same type are producing different hash codes
> in different JVMs, which actually breaks comparison when binary format is
> used, where byte arrays are compared.
> The issue is described in more detail here:
> http://stackoverflow.com/questions/38132263/apache-ignite-as-hibernate-l2-cache-storing-duplicate-entities
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)