初始化Hibernate的奇怪问题

baggio785 2006-05-10 09:35:50
刚接触Hibernante,请大家帮忙~

环境:Hibernate3.1

如果代码这么写
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
一点错误都没有,但是如果这么写的话
Configuration config = new Configuration();
config.addClass(User.class);
SessionFactory sessionFactory = config.buildSessionFactory();

请问为何第二个写法不行,这个是参照书上的例子写的,第一个使我发现有错误,看了一下API改过来的?错误提示就是语法错误


第二个问题,和第一个问题类似
在类中,如果
public class FirstHibernate {
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = null;//这里会提示语法错误
transaction = session.beginTransaction();
}

如果把Transaction的声明初始化放在一个方法中,就正确了,如下
public class FirstHibernate {
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();

public void findSystemadmin(){
Transaction transaction = null;
}
}

请问这是为什么啊?多谢~~
...全文
157 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aChinese 2006-05-10
  • 打赏
  • 举报
回复
Hibernate官方文档中有一个 HibernateUtil类, 拿出来用吧
baggio785 2006-05-10
  • 打赏
  • 举报
回复
谢谢二位,找到答案了

问题出在config.addClass(User.class);这句
因为我的Hibernate的配置文件是XML,而非properties,因为在XML文件中已经定义了Mapping文件,无需导入POJO的定义,针对不同的配置文件,对HIBERNATE的初始化还是有区别的
caixuetao 2006-05-10
  • 打赏
  • 举报
回复
如果写成这样的形式就没有错:
private static final SessionFactory sessionFactory;

static {
try {
sessionFactory = new Configuration().configure()
.buildSessionFactory();
} catch (HibernateException ex) {
throw new RuntimeException("Exception building SessionFactory: "
+ ex.getMessage(), ex);
}
}


sessionFactory = new Configuration().configure()
.buildSessionFactory();
上述语句必须放在try{}catch{}中,所以你如果仅用static来修饰sessionFactory 变量也是不行的。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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