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

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")
@Table
public 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 {

	@Override
	public boolean getUser(BbsUser user) {
		Object obj = getSession().createQuery("from BbsUser user where user.name="+user.getName());
		if(obj!=null){
			return true;
		}else{
			return false;
		}
	}

	@Override
	public 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");
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值