Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java insert语句在hibernate中不起作用_Java_Hibernate_Orm - Fatal编程技术网

Java insert语句在hibernate中不起作用

Java insert语句在hibernate中不起作用,java,hibernate,orm,Java,Hibernate,Orm,我正在使用netbeans 6.9和Hibernate,并试图在数据库postgres中插入一些值,但出现以下异常: INFO: Not binding factory to JNDI, no JNDI name configured Exception in thread "main" org.hibernate.MappingException: Unknown entity: SELECTPACK.beanClass at org.hibernate.impl.Sessio

我正在使用netbeans 6.9和Hibernate,并试图在数据库postgres中插入一些值,但出现以下异常:

INFO: Not binding factory to JNDI, no JNDI name configured Exception in thread "main" org.hibernate.MappingException: Unknown entity: SELECTPACK.beanClass at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550) at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:98) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:3 听力是我的主要课程

package SELECTPACK;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class selectMainClass {

    public static void main(String... args) {
        SessionFactory sessionFact = new Configuration().configure().buildSessionFactory();
        Session ses = sessionFact.openSession();
        Transaction tx = ses.beginTransaction();
        beanClass bean = new beanClass();
        bean.setPassword("hi....");
        bean.setUsername("hi....");
        ses.save(bean);
        tx.commit();
        /*String query = "select * from login";
        Query qry = ses.createQuery(query);
        ArrayList list = (ArrayList) qry.list();
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }*/
        ses.close();
    }
}
我不明白问题出在哪里。

实体SELECTPACK.beanClass未被识别为有效实体,在创建SessionFactory时,日志中应该有以前的stacktrace,显示实际错误。查找以前的跟踪。但可能的原因包括:

这个表不存在 其中一个映射列不存在 除此之外,我还有几点不成问题的小意见:

传统上,软件包采用小写形式,即selectpack; Java类名应以大写字母开头,即BeanClass; 建议在selectpack/BeanClass.hbm.xml映射文件中映射一个类selectpack.BeanClass,以便于维护; 我的建议是在映射文件中使用本机生成器。 课堂上有类似的内容:

package selectpack;

public class BeanClass {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}
对于映射文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="selectpack.BeanClass" table="login">
      <id column="id" name="id">
          <generator class="native"/>
      </id>
      <property name="username" column="username"/>
      <property name="password" column="password"/>
    </class>
</hibernate-mapping>

但正如我所说,这些评论与问题没有直接关系。

您没有显示hibernate.cfg.xml文件。我假设您没有指向该文件中的实体。感谢您的回复…给我一些使用hibernate的示例…好的+1 Hi Pascal,如果可能,请为这个问题投票@Valid应支持组属性看一看。非常感谢。
package SELECTPACK;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class selectMainClass {

    public static void main(String... args) {
        SessionFactory sessionFact = new Configuration().configure().buildSessionFactory();
        Session ses = sessionFact.openSession();
        Transaction tx = ses.beginTransaction();
        beanClass bean = new beanClass();
        bean.setPassword("hi....");
        bean.setUsername("hi....");
        ses.save(bean);
        tx.commit();
        /*String query = "select * from login";
        Query qry = ses.createQuery(query);
        ArrayList list = (ArrayList) qry.list();
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }*/
        ses.close();
    }
}
package selectpack;

public class BeanClass {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="selectpack.BeanClass" table="login">
      <id column="id" name="id">
          <generator class="native"/>
      </id>
      <property name="username" column="username"/>
      <property name="password" column="password"/>
    </class>
</hibernate-mapping>
   <mapping resource="selectpack/BeanClass.hbm.xml"/>