准备把一个类用anotation存在数据录里面,但是现在好像不行了,不知道是不是版本兼容的问的,各位神帮忙看看,或者把一个兼容的版本给我哦~~~,谢谢了
另外问一下,每次执行完以后,都发现工程中出现了一个xml的东东,有什么用吗?上代码@Entity
@Table(name="teacherstable")
public class Teacher { private int m_ID;
private int m_AGE;
private String m_NAME;

@Id
@Column(name="ID")
public int getM_ID() {
return m_ID;
}
public void setM_ID(int m_ID) {
this.m_ID = m_ID;
}

@Column(name="Age")
public int getM_AGE() {
return m_AGE;
}
public void setM_AGE(int m_AGE) {
this.m_AGE = m_AGE;
}

@Column(name="Name")
public String getM_NAME() {
return m_NAME;
}
public void setM_NAME(String m_NAME) {
this.m_NAME = m_NAME;
}}//////////////////我是华丽的昏割线//////////////////////////
public static void main(String[] args) {
// TODO Auto-generated method stub Student s = new Student();
s.setID(87);
s.setAge(43);
s.setName("sd");


Teacher t = new Teacher();
t.setM_ID(87);
t.setM_AGE(43);
t.setM_NAME("sd");


AnnotationConfiguration cfg = new AnnotationConfiguration();
SessionFactory sf = cfg.configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.save(t);
session.getTransaction().commit();
session.close();
sf.close();错误错误错误Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.hibernate.cfg.AnnotationConfiguration.<clinit>(AnnotationConfiguration.java:65)
at maintest.main(maintest.java:31)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)Hibernateannotation

解决方案 »

  1.   

     java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    提示找不到这个类,你需要引入commons-logging.jar这个jar包。至于你的jar包hibernate-annotations.jar貌似没必要,这个貌似是hibernate4需要的jar包。hibernate3.5以下的版本,貌似是hibernate3.jar ,ejb-persistence.jar,hibernate-annotation.jar这3个包,其他的加上倚赖包。hibernate3.5以上的hibernate3版本,是hibernate3.jar,hibernate-jpa这2个包,添加上倚赖包。
    hibernate4.jar包你可以在官网下载,里面有必须包。你可以先加上commons-logging.jar先试一试。 然后检查下hibernate3.jar的版本,方法是hibernate3.jar压缩包解压后里面,meta-inf文件夹下有个MANIFEST.MF文件,打开就可以看到hibernate3的具体版本。还没解决,你可以用我提供的hibernate3.5.5jar包试一试。 http://blog.csdn.net/xiaoliouc/article/details/8204765
      

  2.   

    就是由于 commons-logging.jar 的原因进一步问一下,这个包,commons-logging.jar 是个日志系统,看样子。可是我的工程里面已经有了slf.jar,实现和接口都有。难道,hibernate 的 annotation 使用 commons-logging,jar 实现的?