mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-15 05:53:08 +00:00
Add new CacheableDSpaceObject abstract class for Hibernate second-level caching. Required in Hibernate 6 as subclasses cannot use @Cache annotation
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* The contents of this file are subject to the license and copyright
|
||||
* detailed in the LICENSE and NOTICE files at the root of the source
|
||||
* tree and available online at
|
||||
*
|
||||
* http://www.dspace.org/license/
|
||||
*/
|
||||
package org.dspace.content;
|
||||
|
||||
import jakarta.persistence.Cacheable;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
/**
|
||||
* Abstract class for DSpaceObjects which are safe to cache in Hibernate's second level cache.
|
||||
* See hibernate-ehcache-config.xml for caching configurations for each DSpaceObject which extends this class.
|
||||
*/
|
||||
@Cacheable
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, include = "non-lazy")
|
||||
public abstract class CacheableDSpaceObject extends DSpaceObject {
|
||||
}
|
@@ -52,7 +52,7 @@ import org.dspace.eperson.Group;
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "collection")
|
||||
public class Collection extends DSpaceObject implements DSpaceObjectLegacySupport {
|
||||
public class Collection extends CacheableDSpaceObject implements DSpaceObjectLegacySupport {
|
||||
|
||||
@Column(name = "collection_id", insertable = false, updatable = false)
|
||||
private Integer legacyId;
|
||||
|
@@ -45,7 +45,7 @@ import org.dspace.eperson.Group;
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "community")
|
||||
public class Community extends DSpaceObject implements DSpaceObjectLegacySupport {
|
||||
public class Community extends CacheableDSpaceObject implements DSpaceObjectLegacySupport {
|
||||
@Column(name = "community_id", insertable = false, updatable = false)
|
||||
private Integer legacyId;
|
||||
|
||||
|
@@ -12,7 +12,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import jakarta.persistence.Cacheable;
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
@@ -29,7 +28,6 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.dspace.authorize.ResourcePolicy;
|
||||
import org.dspace.core.ReloadableEntity;
|
||||
import org.dspace.handle.Handle;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
import org.hibernate.annotations.GenericGenerator;
|
||||
|
||||
/**
|
||||
@@ -38,8 +36,6 @@ import org.hibernate.annotations.GenericGenerator;
|
||||
@Entity
|
||||
@Inheritance(strategy = InheritanceType.JOINED)
|
||||
@Table(name = "dspaceobject")
|
||||
@Cacheable
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, includeLazy = false)
|
||||
public abstract class DSpaceObject implements Serializable, ReloadableEntity<java.util.UUID> {
|
||||
@Id
|
||||
@GeneratedValue(generator = "predefined-uuid")
|
||||
|
@@ -23,7 +23,7 @@ import org.dspace.services.factory.DSpaceServicesFactory;
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "site")
|
||||
public class Site extends DSpaceObject {
|
||||
public class Site extends CacheableDSpaceObject {
|
||||
|
||||
@Transient
|
||||
private transient SiteService siteService;
|
||||
|
@@ -22,7 +22,7 @@ import jakarta.persistence.TemporalType;
|
||||
import jakarta.persistence.Transient;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dspace.content.DSpaceObject;
|
||||
import org.dspace.content.CacheableDSpaceObject;
|
||||
import org.dspace.content.DSpaceObjectLegacySupport;
|
||||
import org.dspace.content.Item;
|
||||
import org.dspace.core.Constants;
|
||||
@@ -38,7 +38,7 @@ import org.dspace.eperson.service.EPersonService;
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "eperson")
|
||||
public class EPerson extends DSpaceObject implements DSpaceObjectLegacySupport {
|
||||
public class EPerson extends CacheableDSpaceObject implements DSpaceObjectLegacySupport {
|
||||
@Column(name = "eperson_id", insertable = false, updatable = false)
|
||||
private Integer legacyId;
|
||||
|
||||
|
@@ -20,7 +20,7 @@ import jakarta.persistence.ManyToMany;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.Transient;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dspace.content.DSpaceObject;
|
||||
import org.dspace.content.CacheableDSpaceObject;
|
||||
import org.dspace.content.DSpaceObjectLegacySupport;
|
||||
import org.dspace.core.Constants;
|
||||
import org.dspace.core.Context;
|
||||
@@ -33,7 +33,7 @@ import org.dspace.core.HibernateProxyHelper;
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "epersongroup")
|
||||
public class Group extends DSpaceObject implements DSpaceObjectLegacySupport {
|
||||
public class Group extends CacheableDSpaceObject implements DSpaceObjectLegacySupport {
|
||||
|
||||
@Transient
|
||||
public static final String ANONYMOUS = "Anonymous";
|
||||
|
Reference in New Issue
Block a user