[英]Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] Java Error
[英]Error with Hibernate:Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
在这里,我创建会话:
public class HibernateSessionFactoryUtil {
private static SessionFactory sessionFactory;
public HibernateSessionFactoryUtil() { }
public static SessionFactory getSessionFactory() {
if (sessionFactory == null) {
try {
Configuration configuration = new Configuration().configure();
configuration.addAnnotatedClass(User.class);
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
sessionFactory = configuration.buildSessionFactory(builder.build());
} catch (Exception e) {
System.out.println("Error!" + e);
}
}
return sessionFactory;
}
}
我的用户:
@Entity
@Table(appliesTo = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String lastName;
private String firstName;
private String position;
private int department;
public User(){}
public User(String lastName, String firstName, String position, int department) {
this.lastName = lastName;
this.firstName = firstName;`
this.position = position;
this.department = department;
}
}
在DAOImpl
,在初始化会话的那一行中,出现错误:
public void save(final Object o) {
if (o == null) {
logger.error("**DAO - save* EMPTY OBJ");
return;
}
Session session = HibernateSessionFactoryUtil.getSessionFactory().openSession();
Transaction tx1 = session.beginTransaction();
session.save(o);
tx1.commit();
session.close();
}
例外:
Exception in thread "main" java.lang.NullPointerException
at codebox.dao.DAOImpl.save(DAOImpl.java:50)
at codebox.services.UserService.saveUser(UserService.java:19)
at codebox.Application.main(Application.java:16)
您遇到的问题很可能是由于未配置配置对象引起的。 请添加hibernate.connection.username,hibernate.connection.password,hibernate.dialect,hibernate.hbm2ddl.auto,然后重试。 如果未设置这些属性,则每次会话都将为空。 您还可以使用hibernate.cfg.xml文件检查如何执行此操作。
例如:
Configuration configuration = new Configuration().configure();
configuration.addAnnotatedClass(User.class);
configuration.setProperty("hibernate.connection.username", "sa");
configuration.setProperty("hibernate.connection.password", "");
configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
configuration.setProperty("hibernate.hbm2ddl.auto", "create-drop");
祝好运!
错误是我没有初始化上下文:例如main中的一个示例:
ConfigurableApplicationContext context = SpringApplication.run (Application.class, args);
MyService myService = (MyService) context.getBean ("myService");
在这项服务中,主豆被拉起
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.