我正在使用Hibernate作爲ORM工具,並且在從表中加載數據時出現以下錯誤。使用休眠時從表加載數據時出錯
org.hibernate.HibernateException: CGLIB Enhancement failed: com.hotel.entity.HotelUser
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxy(CGLIBLazyInitializer.java:96)
at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.getProxy(CGLIBProxyFactory.java:49)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:379)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3455)
at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:257)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:191)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:795)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:788)
at com.hotel.domain.UserLoginService.checkUserCredentials(UserLoginService.java:17)
at com.hotel.app.UserLoginManager.checkUserCredentials(UserLoginManager.java:12)
at com.hotel.app.UserLoginManager.main(UserLoginManager.java:23)
Caused by: java.lang.InstantiationException: com.hotel.entity.HotelUser$$EnhancerByCGLIB$$fa712a57
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyInstance(CGLIBLazyInitializer.java:107)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxy(CGLIBLazyInitializer.java:93)
... 12 more
請讓我知道,我錯過了什麼?下面
是我的課
public class HotelUser implements Serializable {
private static final long serialVersionUID = 1L;
private String userId;
private String password;
private String userName;
private HotelUser() {
}
/**
* @param userId
* @param password
* @param userName
* @param lastLoginDate
*/
public HotelUser(String userId, String password, String userName) {
super();
this.userId = userId;
this.password = password;
this.userName = userName;
}
/**
* @return the userId
*/
public String getUserId() {
return userId;
}
/**
* @param userId the userId to set
*/
public void setUserId(String userId) {
this.userId = userId;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return the userName
*/
public String getUserName() {
return userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
}
}
和HBM文件如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hotel.entity.HotelUser" table="hotel_user">
<id name="userId" type="string" column="USER_ID">
</id>
<property name="password" type="string" column="PASSWORD" />
<property name="userName" type="string" column="USER_NAME" />
</class>
</hibernate-mapping>
謝謝..那工作我添加了默認構造和運行沒有任何問題..但如果我不想有一個默認的構造函數,那麼該怎麼辦? – 2010-11-13 09:41:37
@Mrityunjay你不能。看到我添加的鏈接 – Bozho 2010-11-13 09:54:25