以前我使用以下代码配置sessionFactory,但在将hibernate版本从4.2.1.Final升级到4.3.4.Final后,我无法使用以下代码检索sessionFactory,因为ServiceRegistryBuilder()已被弃用。
我使用这个链接来创建它,但提供的函数没有返回任何东西,因此它遇到了预编译错误。
private static SessionFactory configureSessionFactory() {
try {
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
} catch (HibernateException e) {
System.out.append("** Exception in SessionFactory **");
e.printStackTrace();
}
return sessionFactory;
}
static {
try {
sessionFactory = configureSessionFactory();
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
private HibernateUtil() {
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static Session getSession() throws HibernateException {
Session session = threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession() : null;
threadLocal.set(session);
}
return session;
}
public static void rebuildSessionFactory() {
try {
sessionFactory = configureSessionFactory();
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
if (session.isOpen()) {
session.close();
}
}
}
是的,他们已经弃用了以前的ServiceRegistryBuilder(),下面是使用Hibernate 4.3.4的方法
public void testConnection() throws Exception {
logger.info("Trying to Connect With a DataBase.");
Configuration configuration = new Configuration();
configuration.configure("Your.cfg.xml");
ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder().applySettings(configuration
.getProperties());
SessionFactory sessionFactory = configuration
.buildSessionFactory(serviceRegistryBuilder.buildServiceRegistry());
Session session = sessionFactory.openSession();
logger.info("Database connection created successfuly.");
}
来源:在Hibernate 4中创建会话工厂
我测试了这个,它在Hibernate 4.3.6上运行
public class HUtil{
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
public static SessionFactory createSessionFactory() {
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new StandardServiceRegistryBuilder().
applySettings(configuration.getProperties()).build();
sessionFactory = configuration.configure(). buildSessionFactory(serviceRegistry);
return sessionFactory;
}
public static SessionFactory getSessionFactory() {
return createSessionFactory();
} }
在4.3中,您应该使用StandardServiceRegistryBuilder。
import org.hibernate.boot.registry.StandardServiceRegistryBuilder
Standard ServiceRegstryBuilder
被添加为ServiceRegstryBuilder
的新父级。其余代码应该是相同的。我发现这一点“清楚”记录的唯一地方是在ServiceRegstryBuilder
的4.3 JavaDocs中。
我没有注意到的一件事是,他们更改了ServiceRegistryBuilder。buildServiceRegistry()方法,只需将其转换为StandardServiceRegistryBuilder.build()。因此,它将要求您更改建筑过程的这一部分:
new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
变成:
new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.build();
问题内容: 我的目标是每个项目都有一个独立的Go Workspace。 是否可以从正在运行的Docker容器中检索Go工作空间和Go环境变量,以供IDE或文本编辑器进行开发? 我已经尝试过使用go工具和依赖项将卷映射到容器。但这需要始终将GOPATH设置为当前工作空间,并且需要在主机上具有go工具和依赖项。 问题答案: 启动容器时,您至少可以设置并传递这些环境变量: 通过使用,您可以允许主机与容器
{“type”:“record”、“name”:“twitter_schema”、“namespace”:“com.miguno.avro”、“fields”:[{“name”:“username”、“type”:“string”、“doc”:“Twitter.com上的用户帐户名称”}、{“name”:“tweet”、“type”:“string”、“doc”:“用户的Twitter消息内容”}
问题内容: 我们如何从文本字段中检索值?我需要将值转换为进一步处理。我已经在单击按钮时创建了一个文本字段,我需要存储输入到中的值,你能提供一个代码段吗? 问题答案: 参见Java文档中的JTextField 示例代码可以是:
目前我正在做一个项目,我需要从一个表中提取最新的数据用于报告目的。下面是示例表结构:- 我使用下面的SQL查询并能够提取数据。 但问题是真正的表非常大。大约有85k行,这个查询需要一些时间。还有其他更好的方法吗。我正在使用Oracle 11g R2。请建议 这是SQLfiddle链接http://sqlfiddle.com/#!4/b3fe1/8
我试图使用庞大的Node.js包将文件从Docx转换为HTML。庞大的自述文件建议使用以下格式转换文件: 在函数中的任何位置放置语句将不允许我使用存储的html,但是我可以将正确的html内容输出到控制台。我需要关于如何返回/使用promise之外的html变量的建议,谢谢。