[infinispan-issues] [JBoss JIRA] (ISPN-9443) Fail when single region is accessed with multiple strategies

Diego Lovison (JIRA) issues at jboss.org
Tue Aug 21 12:47:00 EDT 2018


    [ https://issues.jboss.org/browse/ISPN-9443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13622215#comment-13622215 ] 

Diego Lovison edited comment on ISPN-9443 at 8/21/18 12:46 PM:
---------------------------------------------------------------

Please consider the following scenario as well.
Most of the fields were hidden.

{code:java}

@Entity
@Table(name = "phone")
@Cacheable
public class Phone { }

@Entity
@Table(name = "person")
@Cacheable
public class Person {
   @OneToMany(cascade = CascadeType.ALL)
   @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_ONLY, region = "phone-region")
   private List<Phone> phones;
}
{code}


Phone has two different access strategies.


was (Author: dlovison):
Please consider the following scenario as well.
Most of the fields were hidden.

{code:java}

@Entity
@Table(name = "phone")
@Cacheable
public class Phone { }

@Entity
@Table(name = "person")
@Cacheable
public class Person {
   @OneToMany(cascade = CascadeType.ALL)
   @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_ONLY, region = "phone-region")
   private List<Phone> phones;
}
{code}


In the case above, Phone have two different access strategies.

> Fail when single region is accessed with multiple strategies
> ------------------------------------------------------------
>
>                 Key: ISPN-9443
>                 URL: https://issues.jboss.org/browse/ISPN-9443
>             Project: Infinispan
>          Issue Type: Enhancement
>          Components: Hibernate Cache
>    Affects Versions: 9.3.1.Final
>            Reporter: Radim Vansa
>             Fix For: 9.4.0.Final
>
>
> When we have two entities that share the same region but use different access strategies the Hibernate boot should fail. Right now there's an assertion in {{DomainDataRegionImpl.prepareFor*}} but this does not give much explanation and does not fail when assertions are disabled which leads to cryptic errors later on.
> Example:
> {code}
> @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = "item")
> public static class NonStrictReadWriteVersionedCacheableItem { ... }
> @Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "item")
> public static class ReadWriteVersionedCacheableItem { ... }
> {code}



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the infinispan-issues mailing list