我有一个 pojo,其中包含一些用于获取数据的命名查询。
@NamedQueries({
@NamedQuery(name="abc", query="test")
})
@Entity
@Table(name = "MY_TABLE")
public class MyTable implements java.io.Serializable{
private long id;
private String name;
...........
我必须从服务层方法内部访问这个命名查询的结果。所以我尝试将休眠会话工厂自动连接到服务层类中。
@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 接口或类。