SettingsEntity.java
/*
* Copyright (C) 2003-2017 eXo Platform SAS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.exoplatform.settings.jpa.entity;
import org.exoplatform.commons.api.persistence.ExoEntity;
import javax.persistence.*;
/**
* Created by The eXo Platform SAS
* Author : eXoPlatform
* exo@exoplatform.com
* Mar 07, 2017
*/
@Entity(name = "SettingsEntity")
@ExoEntity
@Table(name = "STG_SETTINGS")
@NamedQueries({
@NamedQuery(name = "SettingsEntity.getSettingsByContextAndScope", query = "SELECT s FROM SettingsEntity s " +
"WHERE s.context.type= :contextType " +
"AND s.context.name= :contextName " +
"AND s.scope.name= :scopeName " +
"AND s.scope.type= :scopeType "),
@NamedQuery(name = "SettingsEntity.getSettingsByContextAndScopeWithNullName", query = "SELECT s FROM SettingsEntity s " +
"WHERE s.context.type= :contextType " +
"AND s.context.name= :contextName " +
"AND s.scope.name IS NULL " +
"AND s.scope.type= :scopeType "),
@NamedQuery(name = "SettingsEntity.getSettingByContextAndScopeAndKey", query = "SELECT s FROM SettingsEntity s " +
"WHERE s.name = :settingName " +
"AND s.context.type= :contextType " +
"AND s.context.name= :contextName " +
"AND s.scope.name= :scopeName " +
"AND s.scope.type= :scopeType "),
@NamedQuery(name = "SettingsEntity.getSettingByContextAndScopeWithNullNameAndKey", query = "SELECT s FROM SettingsEntity s " +
"WHERE s.name = :settingName " +
"AND s.context.type= :contextType " +
"AND s.context.name= :contextName " +
"AND s.scope.name IS NULL " +
"AND s.scope.type= :scopeType "),
@NamedQuery(name = "SettingsEntity.countSettingsByNameAndValueAndScope", query = "SELECT count(s.id) FROM SettingsEntity s " +
"WHERE s.name = :settingName " +
"AND s.value LIKE :settingValue " +
"AND s.scope.name= :scopeName " +
"AND s.scope.type= :scopeType "),
@NamedQuery(name = "SettingsEntity.countSettingsByNameAndValueAndScopeWithNullName", query = "SELECT count(s.id) FROM SettingsEntity s " +
"WHERE s.name = :settingName " +
"AND s.value LIKE :settingValue " +
"AND s.scope.name IS NULL " +
"AND s.scope.type= :scopeType "),
@NamedQuery(name = "SettingsEntity.getSettingsByContextByTypeAndName", query = "SELECT s FROM SettingsEntity s " +
"WHERE s.context.type= :contextType " +
"AND s.context.name= :contextName ")
})
public class SettingsEntity {
@Id
@Column(name = "SETTING_ID")
@SequenceGenerator(name="SEQ_STG_SETTINGS_COMMON_ID", sequenceName="SEQ_STG_SETTINGS_COMMON_ID")
@GeneratedValue(strategy=GenerationType.AUTO, generator="SEQ_STG_SETTINGS_COMMON_ID")
private long id;
@Column(name = "NAME")
private String name;
@Column(name = "VALUE")
private String value;
@ManyToOne
@JoinColumn(name = "CONTEXT_ID")
private ContextEntity context;
@ManyToOne
@JoinColumn(name = "SCOPE_ID")
private ScopeEntity scope;
public long getId() {
return id;
}
public String getName() {
return name;
}
public SettingsEntity setName(String name) {
this.name = name;
return this;
}
public String getValue() {
return (value == null) ? "" : value;
}
public SettingsEntity setValue(String value) {
this.value = value;
return this;
}
public ContextEntity getContext() {
return context;
}
public SettingsEntity setContext(ContextEntity context) {
this.context = context;
return this;
}
public ScopeEntity getScope() {
return scope;
}
public SettingsEntity setScope(ScopeEntity scope) {
this.scope = scope;
return this;
}
}