[ 
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)

Reply via email to