关于hibernate配置文件中,hibernate.hbm2ddl.auto值的设置?

fishfanfan 2009-09-10 02:51:06
配置文件中属性hibernate.hbm2ddl.auto设置为create,在调用add()方法的时候,能正确插入数据,为什么调用query方法的时候会出现空指针异常,而且查询完毕后,数据库中表的内容被清空

请大家帮兄弟看看,感激不尽!
Hibernate.cfg.xml:
<property name="hibernate.hbm2ddl.auto">create</property>


执行代码:
public static void main(String[] args) {
add();
query(2);
}

static void add() {
Session s = null;
Transaction tx = null;

Department depart = new Department();
depart.setName("depart");
Set<Employee> emps = new HashSet<Employee>();

Employee emp1 = new Employee();
emp1.setDepart(depart);
emp1.setName("emp1");
emp1.setBirthday(new Date());

Skill skiller1 = new Skill();
skiller1.setDepart(depart);
skiller1.setSkill("skill");
skiller1.setName("skiller1");

Saler saler = new Saler();
saler.setDepart(depart);
saler.setSale(100);
saler.setName("saler");

emps.add(emp1);
emps.add(skiller1);
emps.add(saler);

depart.setEmps(emps);

try {
s = HibernateUtil.getSession();
tx = s.beginTransaction();

s.save(depart);
s.save(emp1);
s.save(skiller1);
s.save(saler);

tx.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (s != null) {
s.close();
}
}
}

static Employee query(int id) {
Session s = null;
Transaction tx = null;

try {
s = HibernateUtil.getSession();
tx = s.beginTransaction();

Employee emp = (Employee)s.get(Employee.class, id);
System.out.println(emp.getClass());

tx.commit();
return emp;
} finally {
if (s != null) {
s.close();
}
}
}
...全文
58 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuexijava 2009-09-10
  • 打赏
  • 举报
回复
值设为Update
fishfanfan 2009-09-10
  • 打赏
  • 举报
回复
补充: 别人同样的设置和代码,却可以执行成功而不报异常

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧