/*
* Copyright (c) 2015 Felix Husse under MIT License
* see LICENSE file
*/
package de.fatalix.bookery.bl.dao;
import de.fatalix.bookery.bl.DAOBean;
import de.fatalix.bookery.bl.model.AppSetting;
import de.fatalix.bookery.bl.model.SettingKey;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
/**
*
* @author felix.husse
*/
@Stateless
public class AppSettingDAO extends DAOBean<AppSetting>{
@PersistenceContext(unitName = "bookery-pu")
private EntityManager entityManager;
@SuppressWarnings("unused")
@PostConstruct
private void init() {
super.init(entityManager, AppSetting.class);
}
public AppSetting findByKey(SettingKey key) {
Map<String, Object> params = new HashMap<>();
params.put("key", key.getKey());
if (getFirstEntity(params, AppSetting.FIND_BY_KEY) == null) {
AppSetting defaultSetting = new AppSetting();
defaultSetting.setConfigurationKey(key.getKey());
defaultSetting.setConfigurationValue(key.getDefaultValue());
return save(defaultSetting);
}
return getFirstEntity(params, AppSetting.FIND_BY_KEY);
}
}