私は、Spring で Web アプリケーションを開発し、Eclipse で Hibernate を開発しています。Hibernate クエリまたは Sql クエリをプロパティ ファイルに保存し、後で DAO で使用したいと考えています。これを行う方法を教えてください。一般的な DAO を使用していますが、一般的なクエリを作成する方法はありますか? 後で、ページのリンク、タイトルなどの他のものをプロパティファイルにも保存したいと思います。
つまり、基本的に相互に関連する 3 つの質問です。
一般的なクエリを作成する方法が思いつかなかったので、具体的なクラスで findAll() メソッドをオーバーライドしました。
私は使っている
<context:property-placeholder location="classpath:properties/database.properties"/>
プロパティをロードしますが、問題はそれを使用してJavaコードまたはクラスファイルでhqlを取得する方法ですか?
ダオ
public abstract class AbstractHibernateDAO<T extends Serializable> {
public Class<T> clazz;//class object reference
protected SessionFactory mysessionFactory;
public void setClazz(final Class<T> clazzToSet) {
this.clazz = clazzToSet;
}
protected Session getCurrentSession() {
return mysessionFactory.getCurrentSession();
}
@SuppressWarnings("unchecked")
public List<T> findAll() {
return getCurrentSession().createQuery("from " + clazz.getName()).list();
}
私の具体的なDAO
@Repository("categDAO")
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS,value="request")
public class CategoryDAO extends AbstractHibernateDAO<category_pojo>{
public CategoryDAO() {
setClazz(category_pojo.class);
}
@Override
public category_pojo findOneByName(String name) {
return (category_pojo) getCurrentSession().createQuery("from "+clazz.getName()+" where categoryName=:name").setParameter("name",name).uniqueResult();
}
}