我有一個pojo包含幾個命名查詢來獲取數據。春季休息服務 - hibernate dao - 註釋 - pojo - namedqueries
@NamedQueries({
@NamedQuery(name="abc", query="test")
})
@Entity
@Table(name = "MY_TABLE")
public class MyTable implements java.io.Serializable{
private long id;
private String name;
...........
我必須從服務層方法中訪問此命名查詢的結果。 所以我試圖將hibernate會話工廠自動裝入服務層類。
@Service
public class MyServiceClass{
@Autowired
SessionFactory sessionFactory;
..........
public void myMethod() {
Session session = acceSessionFactory.getCurrentSession();
Query query = session.getNamedQuery("abc").setInteger("id", 1).setString("name", "testname");
MyTable mytablerow = (MyTable) query.uniqueResult();
.......
}
但是,在上面的方法 - 我認爲我們有服務層的dao層邏輯。 這是訪問指定查詢的正確方法嗎?
注意:我沒有上面的MyTable類的DAO接口或類。
這種組合方法如何?擁有GenericDAO?有一個接口IMyTableDAO,它實現GenericDAO - 但沒有任何MyTableDAOImpl。 – user811433
@ user811433查看'spring-data-jpa',這正是你描述的原因。 – Kartoch
您將需要MyTableDAOImpl NamedQuery(「abc」)通常特定於您的實體或某個基本實體。它不會被引用GenericDAOImpl –