关于一个Java中hibernate问题?
我使用的是oracle数据库,。能正常连接;当我在main方法中;执行以下代码的,向oracle数据库插入一条记录.。出现一个异常信息.!----------------...
我使用的是oracle数据库,。能正常连接;
当我在main方法中;执行以下代码的,向oracle数据库插入一条记录.。出现一个异常信息.!
-----------------------------------------------------------------
public static void main(String[] args) {
// TODO Auto-generated method stub
//生成POJO类的实例;
Student stu=new Student();
stu.setId(1);
stu.setName("测试");
stu.setSex("男");
Test_InsertData in=new Test_InsertData();
in.insert(stu);
}
---异常信息如下:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.MappingException: composite-id class must implement Serializable: pack.y2ssh.pojo.Student
at org.hibernate.mapping.RootClass.checkCompositeIdentifier(RootClass.java:220)
at org.hibernate.mapping.RootClass.validate(RootClass.java:201)
at org.hibernate.cfg.Configuration.validate(Configuration.java:984)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1169)
at pack.y2ssh.pojo.Test_InsertData.<init>(Test_InsertData.java:17)
at pack.y2ssh.pojo.Test.main(Test.java:16)
-----------------------------------------------------------------
我把Student.hbm.xml文件的配置信息贴出来.具体如下所示:
<hibernate-mapping>
<!-- 指定pojo类指定的包 -->
<class name="pack.y2ssh.pojo.Student" table="STUDENT" schema="SCOTT">
<!-- name表示Student类中的名字 -->
<composite-id name="id" class="pack.y2ssh.pojo.Student">
<!-- name表示类中的id,表示数据类型 -->
<key-property name="id" type="java.lang.Long">
<!-- name=“ID”代表数据库的字段名称 -->
<column name="ID" precision="22" scale="0" />
</key-property>
<key-property name="name" type="java.lang.String">
<column name="NAME" length="50" />
</key-property>
<key-property name="sex" type="java.lang.String">
<column name="SEX" length="50" />
</key-property>
</composite-id>
</class>
</hibernate-mapping>
----------------------------------------------------------------
哪位朋友能够看出哪里出错了.!!! 展开
当我在main方法中;执行以下代码的,向oracle数据库插入一条记录.。出现一个异常信息.!
-----------------------------------------------------------------
public static void main(String[] args) {
// TODO Auto-generated method stub
//生成POJO类的实例;
Student stu=new Student();
stu.setId(1);
stu.setName("测试");
stu.setSex("男");
Test_InsertData in=new Test_InsertData();
in.insert(stu);
}
---异常信息如下:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.MappingException: composite-id class must implement Serializable: pack.y2ssh.pojo.Student
at org.hibernate.mapping.RootClass.checkCompositeIdentifier(RootClass.java:220)
at org.hibernate.mapping.RootClass.validate(RootClass.java:201)
at org.hibernate.cfg.Configuration.validate(Configuration.java:984)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1169)
at pack.y2ssh.pojo.Test_InsertData.<init>(Test_InsertData.java:17)
at pack.y2ssh.pojo.Test.main(Test.java:16)
-----------------------------------------------------------------
我把Student.hbm.xml文件的配置信息贴出来.具体如下所示:
<hibernate-mapping>
<!-- 指定pojo类指定的包 -->
<class name="pack.y2ssh.pojo.Student" table="STUDENT" schema="SCOTT">
<!-- name表示Student类中的名字 -->
<composite-id name="id" class="pack.y2ssh.pojo.Student">
<!-- name表示类中的id,表示数据类型 -->
<key-property name="id" type="java.lang.Long">
<!-- name=“ID”代表数据库的字段名称 -->
<column name="ID" precision="22" scale="0" />
</key-property>
<key-property name="name" type="java.lang.String">
<column name="NAME" length="50" />
</key-property>
<key-property name="sex" type="java.lang.String">
<column name="SEX" length="50" />
</key-property>
</composite-id>
</class>
</hibernate-mapping>
----------------------------------------------------------------
哪位朋友能够看出哪里出错了.!!! 展开
6个回答
展开全部
VO模型类没有序列化
class Student implement Serializable
这样就可以了
另外有些习惯还是要有的,比如VO模型应该写成StudentModel
class Student implement Serializable
这样就可以了
另外有些习惯还是要有的,比如VO模型应该写成StudentModel
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我对你的映射文件很费解Student的id为组合Id,并且是Student本身?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是 Student 类要实现 Serializable 接口
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
log4j的JAR包加上;config文件里应该有个很长的工厂代码,你查一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
XML文件只接触过一次,回答可能不知所云,望见谅。
XML文件不是第一行必须是XML文件的头部说明的么,比如:<?xml version="1.0" encoding="gb2312"?>。你上面的好像没有 。没有的话好像识别不了的吧。
XML文件不是第一行必须是XML文件的头部说明的么,比如:<?xml version="1.0" encoding="gb2312"?>。你上面的好像没有 。没有的话好像识别不了的吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询