qq_33462961 2017-03-30 14:57 采纳率: 60%
浏览 742
已采纳

求问,关于卡了我一晚上的hibernate问题。

环境:

jdk1.8.0_92
hibernate-release-5.1.0-Final
jboss插件。

问题描述:
org.hibernate.AnnotationException: No identifier specified for entity: entity.Student

我查了查说是没有主键。可没找到解决方法。

我的代码是:

public class StudentTest {
    private SessionFactory sessionFactory;
    private Session session;
    private Transaction transaction;

    @Before
    public void init() {
        Configuration configuration = new Configuration().configure();
        sessionFactory = new Configuration().configure().buildSessionFactory();
        session = sessionFactory.openSession();
        transaction = session.beginTransaction();
    }

    @Test
    public void studentTest() {
        Student student = new Student(1, "zhanhgsa", new Date(), "man");
        session.save(student); // 保存对象进数据库
    }

    @After
    public void destory() {
        transaction.commit();// 提交事务
        session.close();// 关闭会话
        sessionFactory.close();// 关闭会话工厂
    }
}


其映射为:

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-3-30 22:49:04 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="entity.Student" table="STUDENT">
        <id name="sid" type="int">
            <column name="SID" />
            <generator class="assigned" />
        </id>
        <property name="sname" type="java.lang.String">
            <column name="SNAME" />
        </property>
        <property name="gender" type="java.lang.String">
            <column name="GENDER" />
        </property>
        <property name="birthday" type="java.util.Date">
            <column name="BIRTHDAY" />
        </property>
    </class>
</hibernate-mapping>

hibernate配置

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory >
  <property name="hibernate.connection.password">885436</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</property>
  <property name="diolect">org.hibernate.diolect.MySqLDiolect</property>
  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.format_sql">true</property>
  <property name="hibernate.hbm2ddl.auto">create</property>

  <mapping class="entity.Student"/>


 </session-factory>
</hibernate-configuration>

实体类:


@Entity(name="Student")
public class Student {

    private int sid;
    private String sname;
    private String gender;
    private Date birthday;


    public Student(int sid, String sname, Date birthday, String gender) {

        this.sid = sid;
        this.sname = sname;
        this.birthday = birthday;
        this.gender = gender;
    }



    public Student() {
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Student [sid=" + sid + ", sname=" + sname + ", birthday=" + birthday + ", gender=" + gender + "]";
    }

}


  • 写回答

3条回答 默认 最新

  • kingbaron 2017-03-31 01:10
    关注

    等一下,会不会是你的实体类在sid属性上面没有加@Id注解

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab