From c36b88ca1cf9fda3ce8411780c03e813eb063803 Mon Sep 17 00:00:00 2001 From: jomu Date: Wed, 31 May 2017 21:16:47 +0000 Subject: [PATCH] added cache hints --- .../shared/account/entity/ConfigEntity.java | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/account/src/main/java/de/muehlencord/shared/account/entity/ConfigEntity.java b/account/src/main/java/de/muehlencord/shared/account/entity/ConfigEntity.java index 81de804..118e91a 100644 --- a/account/src/main/java/de/muehlencord/shared/account/entity/ConfigEntity.java +++ b/account/src/main/java/de/muehlencord/shared/account/entity/ConfigEntity.java @@ -2,30 +2,49 @@ package de.muehlencord.shared.account.entity; import java.io.Serializable; import javax.persistence.Basic; +import javax.persistence.Cacheable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; +import javax.persistence.QueryHint; import javax.persistence.Table; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; /** * * @author joern.muehlencord */ @Entity -@Table(name = "config") -@XmlRootElement -@NamedQueries({ - @NamedQuery(name = "ConfigEntity.findAll", query = "SELECT c FROM ConfigEntity c"), - @NamedQuery(name = "ConfigEntity.findByConfigKey", query = "SELECT c FROM ConfigEntity c WHERE c.configKey = :configKey"), - @NamedQuery(name = "ConfigEntity.findByConfigValue", query = "SELECT c FROM ConfigEntity c WHERE c.configValue = :configValue")}) + @Table(name = "config") + @XmlRootElement + @Cacheable(true) + @Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL, region = "Configuration") + @NamedQueries({ + @NamedQuery(name = "ConfigEntity.findAll", query = "SELECT c FROM ConfigEntity c ORDER BY c.configKey", + hints = { + @QueryHint(name = "org.hibernate.cacheable", value = "true") + , @QueryHint(name = "org.hibernate.cacheRegion", value = "Queries")}) + , @NamedQuery(name = "ConfigEntity.findByConfigKey", query = "SELECT c FROM ConfigEntity c WHERE c.configKey = :configKey", + hints = { + @QueryHint(name = "org.hibernate.cacheable", value = "true") + , @QueryHint(name = "org.hibernate.cacheRegion", value = "Queries")}) + + , @NamedQuery(name = "ConfigEntity.findByConfigValue", query = "SELECT c FROM ConfigEntity c WHERE c.configValue = :configValue", + hints = { + @QueryHint(name = "org.hibernate.cacheable", value = "true") + , @QueryHint(name = "org.hibernate.cacheRegion", value = "Queries")}) + }) + public class ConfigEntity implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = -2013982316933782223L; + @Id @Basic(optional = false) @NotNull @@ -42,8 +61,8 @@ public class ConfigEntity implements Serializable { public ConfigEntity(String configKey) { this.configKey = configKey; } - - public ConfigEntity (String configKey, String configValue) { + + public ConfigEntity(String configKey, String configValue) { this.configKey = configKey; this.configValue = configValue; } @@ -88,5 +107,5 @@ public class ConfigEntity implements Serializable { public String toString() { return "de.muehlencord.shared.account.entity.Config[ configKey=" + configKey + " ]"; } - + }