在Java持久性会话作用域中使用SQL Server变量?
我对使用Java Hibernate持久性的MS SQL Server非常陌生,而且我在会话范围方面遇到了一些问题。 我知道SQLServer本地会话变量的作用域是创建它的存储过程或批处理 但当我像这样使用持久性会话时:在Java持久性会话作用域中使用SQL Server变量?,java,sql-server,hibernate,session,scope,Java,Sql Server,Hibernate,Session,Scope,我对使用Java Hibernate持久性的MS SQL Server非常陌生,而且我在会话范围方面遇到了一些问题。 我知道SQLServer本地会话变量的作用域是创建它的存储过程或批处理 但当我像这样使用持久性会话时: EntityManager entityManager = entityManagerFactory.createEntityManager(); Session session = entityManager.unwrap( Session.class ); session.
EntityManager entityManager = entityManagerFactory.createEntityManager();
Session session = entityManager.unwrap( Session.class );
session.createSQLQuery( " declare @bit int; set @bit = 3; " ).executeUpdate();
List obj = session.createSQLQuery( " select @bit; " ).list();
它抛出一个错误:
ERROR: Must declare the scalar variable "@bit".
结果是每次执行createSQLQuery。。。创建一个全新的批处理
我的问题是:
是否有可能在一次以上的createSQLQuery执行中使用SQL Server变量或临时表。。。来自同一会话实例?
我希望避免创建数据库全局变量以及在一些非临时表中存储临时会话数据
提前感谢您的帮助