Java 未知实体异常

Java 未知实体异常,java,spring,hibernate,spring-mvc,hibernate-mapping,Java,Spring,Hibernate,Spring Mvc,Hibernate Mapping,我是SpringMCV的新手,我创建了一个SpringMVC、java和hibernate项目。我使用了SpringMVC4版本 现在我正在练习如何在hibernate中建立一对一的关系。除了mvc-dispatcher-servlet.xml和web.xml之外,只有一个配置xml。 它是hibernate.cfg.xml文件 这是我写的两门课 package lk.ddarz4u.sales.database; import javax.persistence.Entity; i

我是SpringMCV的新手,我创建了一个SpringMVC、java和hibernate项目。我使用了SpringMVC4版本

现在我正在练习如何在hibernate中建立一对一的关系。除了mvc-dispatcher-servlet.xml和web.xml之外,只有一个配置xml。 它是hibernate.cfg.xml文件

这是我写的两门课

    package lk.ddarz4u.sales.database;


import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToOne;

@Entity
public class Agency  {
    @Id
    private String agencyId;
    private String agencyName;
    @OneToOne
    private Shipment shipment;




    public Shipment getShipment() {
        return shipment;
    }

    public void setShipment(Shipment shipment) {
        this.shipment = shipment;
    }


     public String getAgencyId() {
        return agencyId;
    }

    public void setAgencyId(String agencyId) {
        this.agencyId = agencyId;
    }

    public String getAgencyName() {
        return agencyName;
    }

    public void setAgencyName(String agencyName) {
        this.agencyName = agencyName;
    }


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

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3307/SalesDelivery</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password"></property>
        <property name="hibernate.connection.pool_size">10</property>
        <property name="show_sql">true</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hbm2ddl.auto">update</property>
        <mapping class="lk.ddarz4u.sales.database.Agency"></mapping>
        <mapping class="lk.ddarz4u.sales.database.Shipment"></mapping>


    </session-factory>
</hibernate-configuration>
这是装运舱

package lk.ddarz4u.sales.database;


import javax.persistence.*;
import java.util.Date;

@Entity
public class Shipment  {
    @Id
    private String shipmentId;
    private int Quantity;
    @Temporal(TemporalType.DATE)
    private Date updateDate;




    public String getShipmentId() {
        return shipmentId;
    }

    public void setShipmentId(String shipmentId) {
        this.shipmentId = shipmentId;
    }

    public int getQuantity() {
        return Quantity;
    }

    public void setQuantity(int quantity) {
        Quantity = quantity;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }


}
我为这两个人写了一个测试类

package lk.ddarz4u.sales.database;


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

import java.util.Date;

public class Test_one_to1 {
    public static void main() {

        Date date=new Date();


        Shipment shipment = new Shipment();
        shipment.setQuantity(45);
        shipment.setShipmentId("s1");
        shipment.setUpdateDate(date);

        Agency agency = new Agency();
        agency.setAgencyId("A1");
        agency.setAgencyName("Colombo");
        agency.setShipment(shipment);


        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        session.saveOrUpdate(agency);
        session.saveOrUpdate(shipment);
        session.getTransaction().commit();
        session.close();

    }

}
这里是我编写的hibernate.cfg.xml文件

    package lk.ddarz4u.sales.database;


import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToOne;

@Entity
public class Agency  {
    @Id
    private String agencyId;
    private String agencyName;
    @OneToOne
    private Shipment shipment;




    public Shipment getShipment() {
        return shipment;
    }

    public void setShipment(Shipment shipment) {
        this.shipment = shipment;
    }


     public String getAgencyId() {
        return agencyId;
    }

    public void setAgencyId(String agencyId) {
        this.agencyId = agencyId;
    }

    public String getAgencyName() {
        return agencyName;
    }

    public void setAgencyName(String agencyName) {
        this.agencyName = agencyName;
    }


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

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3307/SalesDelivery</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password"></property>
        <property name="hibernate.connection.pool_size">10</property>
        <property name="show_sql">true</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hbm2ddl.auto">update</property>
        <mapping class="lk.ddarz4u.sales.database.Agency"></mapping>
        <mapping class="lk.ddarz4u.sales.database.Shipment"></mapping>


    </session-factory>
</hibernate-configuration>
作为一个春季和冬眠的初学者,请给我一个解决这个问题的方法

    package lk.ddarz4u.sales.database;


import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToOne;

@Entity
@Table(name = "agency")

public class Agency
{
     @Id
     @Column(name="agencyId")
     private String agencyId;

     @Column(name="agencyName")
     private String agencyName;

     //getter setter method
}

请对发货类也做同样的操作

为什么不在发布前搜索一下呢。定义@Columnname=。。。和@OneToOne。将类定义为@Tablename=。。。。。。在hibernate.cfg中提供实体类名称。xml@Swaraj-是的,我在谷歌上搜索过,所有的解决方案都与SpringBean相关。我不知道那个豆子的概念。我想这会解决你的问题。。。。。