Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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 session.save()与“有错误”;“未知实体”;_Java_Hibernate - Fatal编程技术网

Java session.save()与“有错误”;“未知实体”;

Java session.save()与“有错误”;“未知实体”;,java,hibernate,Java,Hibernate,我刚开始冬眠,正如我研究的那样。当我想开始我的JUnit时,每次都可能发生这个错误。我想我的hbm.xml文件有问题。也许我错过了一些东西,因为我还是个刚开始冬眠的人 这是我的hbm.xml文件 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://

我刚开始冬眠,正如我研究的那样。当我想开始我的JUnit时,每次都可能发生这个错误。我想我的hbm.xml文件有问题。也许我错过了一些东西,因为我还是个刚开始冬眠的人

这是我的hbm.xml文件

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="com.test.UserEntity" table="user" schema="" catalog="junwa">
        <id name="id" column="id"/>
        <property name="username" column="username"/>
        <property name="gender" column="gender"/>
        <property name="birthday" column="birthday"/>
        <property name="addres" column="addres"/>
    </class>
</hibernate-mapping>
这是我的测试文件

/**
 * Created by junwa on 2017/4/2.
 */
import com.test.Students;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.Date;


public class StudentsTest {
    private SessionFactory sessionFactory;
    private Session session;
    private Transaction transaction;
    @Before
    public void init(){
        // create a deploy object
        Configuration config = new Configuration().configure();
        // create a service licenced object
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
        // create a  session factory object
        sessionFactory = config.buildSessionFactory(serviceRegistry);
        // create a sessoin object
        session = sessionFactory.openSession();
        // start transaction
        transaction = session.beginTransaction();

    }

    @After
    public void destroy(){
        // commit transaction
        transaction.commit();
        // close session
        session.close();
        // close session factory
        sessionFactory.close();

    }

    @Test
    public void testSaveStudents(){
        // create a object
        Students s = new Students(1,"junwa","male",new Date(),"Anhui");
        // save object to mysql database
        session.save(s);
        session.flush();


    }
}
这是我的输出

正如Faraz Durrani所说,当您已经在hbm.xml文件中完成了映射时,为什么您需要注释?反之亦然。您必须删除其中一个。我会说删除
hbm.xml
文件,只使用注释


还有一件事我注意到,您也没有关闭横断面。

您不能同时使用hbm.xml和注释。

您遇到了什么问题?你能发布输出吗?谢谢你的帮助。我上传了一张图片,这就是它。@JunwaDirk当你已经在xml文件中完成了映射,为什么你需要注释?如果你觉得这个(或任何)答案有帮助,请投票表决。如果这回答了您的问题,请将其标记为已接受的答案。谢谢是 啊我明白了。非常感谢你!
/**
 * Created by junwa on 2017/4/2.
 */
import com.test.Students;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.Date;


public class StudentsTest {
    private SessionFactory sessionFactory;
    private Session session;
    private Transaction transaction;
    @Before
    public void init(){
        // create a deploy object
        Configuration config = new Configuration().configure();
        // create a service licenced object
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
        // create a  session factory object
        sessionFactory = config.buildSessionFactory(serviceRegistry);
        // create a sessoin object
        session = sessionFactory.openSession();
        // start transaction
        transaction = session.beginTransaction();

    }

    @After
    public void destroy(){
        // commit transaction
        transaction.commit();
        // close session
        session.close();
        // close session factory
        sessionFactory.close();

    }

    @Test
    public void testSaveStudents(){
        // create a object
        Students s = new Students(1,"junwa","male",new Date(),"Anhui");
        // save object to mysql database
        session.save(s);
        session.flush();


    }
}