在这里,我创建会话:
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;
}
}
MyUser:
@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)
答案 0 :(得分:1)
您遇到的问题很可能是由于未配置配置对象引起的。请添加hibernate.connection.username,hibernate.connection.password,hibernate.dialect,hibernate.hbm2ddl.auto,然后重试。如果未设置这些属性,则每次会话都将为空。您还可以使用hibernate.cfg.xml文件检查该操作。
例如:
Preferences | Go | GOPATH | Project GOPATH
祝你好运!
答案 1 :(得分:1)
错误是我没有初始化上下文: 以main为例:
ConfigurableApplicationContext context = SpringApplication.run (Application.class, args);
MyService myService = (MyService) context.getBean ("myService");
在此服务中,主豆被拔起