1. 程式人生 > >org.hibernate.InstantiationException: No default constructor for entity: : cn.com.pack.Customer at

org.hibernate.InstantiationException: No default constructor for entity: : cn.com.pack.Customer at

log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
十一月 23, 2018 8:42:10 上午 org.hibernate.validator.util.Version <clinit>
INFO: Hibernate Validator bean-validator-3.0-JBoss-4.0.2

友情提示:

進行查詢的時候,Customer是實體類的名稱,不是表的名稱

我資料庫表中的名稱是customer

而我的Java class類對應的名稱是Customer

這裡from 實體類的名稱,不能搞錯,不然就會報

org.hibernate.hql.internal.ast.QuerySyntaxException: customer is not mapped [from customer]

package cn.com.test;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import org.junit.Test;
import cn.com.pack.Customer;
import cn.com.util.Hibernate_Utils;
public class Demo1 {
	@Test
public void demo(){
	//連線資料庫
	Session session=Hibernate_Utils.openSession();
	//開始事物
	Transaction tx=session.beginTransaction();
	//進行查詢表中所有記錄
	Query query=session.createQuery("from Customer");
	//把查詢結果放在集合裡面
	List<Customer> list=query.list();
	
	System.out.println(list);
}
}

話說回來,如果填的是實體類,但是還是報如下錯誤

org.hibernate.InstantiationException: No default constructor for entity: 

解決辦法:

實體類沒有無參的構造方法,只要在實體類新增一個無參的構造方法就可以了;