Exception in thread "main" java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/per

来源:互联网 发布:如何利用网络学英语 编辑:程序博客网 时间:2024/06/08 18:55

1.model层

package model;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;@Entity(name="bbsuser")@Tablepublic class BbsUser {@Id@GenericGenerator(name="paymentableGenerator",strategy="native")@GeneratedValue(generator="paymentableGenerator")@Column(name="id")private int id;@Column(name="name")private String name;@Column(name="password")private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public BbsUser() {super();// TODO Auto-generated constructor stub}}

2.HibernateUtil的代码

package util;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateUtil {private static Configuration configuration;private static SessionFactory sessionFactory;private static Transaction transaction; private static Session session;static {try{//1.读取配置configuration = new Configuration();configuration.configure();//2.会话工厂ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();if(sessionFactory!=null);else{sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(sr);}}catch(Exception e){e.printStackTrace();}}//3.得到(创建会话)会话,然后4.开启事务public Session getSession(){ session = sessionFactory.openSession(); transaction = session.beginTransaction(); return session;}//5.操作数据库//6.处理结果//7.提交事务public void getcommit(){transaction.commit();}//8.关闭连接public void close(){session.close();sessionFactory.close();}}



3.有可能会有错误的daoimpl

package daoimpl;import javax.jms.Session;import model.BbsUser;import util.HibernateUtil;import dao.UserDao;public class UserDaoImpl extends HibernateUtil implements UserDao {@Overridepublic boolean getUser(BbsUser user) {Object obj = getSession().createQuery("from BbsUser user where user.name="+user.getName());if(obj!=null){return true;}else{return false;}}@Overridepublic void closeSession() {// TODO Auto-generated method stub}}


4.测试代码

package daoimpl;import model.BbsUser;public class test {public static void main(String[] args) {BbsUser user = new BbsUser();user.setName("李逍遥");user.setPassword("123");UserDaoImpl ui = new UserDaoImpl();boolean bl = ui.getUser(user);if(bl){System.out.println("**********");}else{System.out.println("////////////////");}}}


运行结果
Exception in thread "main" java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:973)at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:824)at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3845)at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3799)at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1412)at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)at util.HibernateUtil.<clinit>(HibernateUtil.java:26)at daoimpl.test.main(test.java:10)

解决办法,model层中不要 @Table 并且把它删掉,只用@Entity(name="bbsuser");
0 0
原创粉丝点击