gpt4 book ai didi

java - [java bean]hibernate Session 破坏了 java bean?

转载 作者:太空宇宙 更新时间:2023-11-04 08:52:29 26 4
gpt4 key购买 nike

我的项目中有一个简单的 JPanel bean,现在我想将我的面板 bean 类拖到我的 jframe 中。

我的面板 bean 类是这样的:

public class BeanPanel extends javax.swing.JPanel {

/** Creates new form BeanPanel */
public BeanPanel () {
initComponents();
Session session=HibernateUtil.getSessionFactory().openSession();
}

这段代码似乎破坏了bean:

Session session=HibernateUtil.getSessionFactory().openSession();

当我尝试将类拖到我的 JFrame bean 中时,我收到以下错误消息:

This component cannot be instantiated. Please make sure it is a JavaBeans Component

如果我评论一切正常。这是什么原因?

谢谢。

最佳答案

不要在构造函数中执行昂贵的工作(例如打开 session )。最好只在构造函数中使用赋值。在您的情况下,放置组件时,NetBeans 正在调用其构造函数。无法连接,因为可能没有加载适当的配置,或者因为类路径是正确的,或者其他原因。

session创建一个getter和setter,并在getter中使用延迟初始化:

public Session getSession() {
if (session == null) {
HibernateUtils.getSessionFactory().openSession();
}
}

也就是说,我认为您可能在 session 处理方面遇到问题。也许你可以看一下SessionFactorygetCurrentSession()方法。

另一件事 - 不要混合数据库访问和 UI。将数据处理移出面板。

关于java - [java bean]hibernate Session 破坏了 java bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3031492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com