Hibernate报错org.hibernate.MappingException: Unknown entity:

cxs4808 2014-03-05 11:32:43
错误信息:
org.hibernate.MappingException: Unknown entity: com.sunrise.model.LsTAlarmId
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:580)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1365)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
at com.sunrise.dao.impl.AlarmFaultDaoImpl.saveAlarmInfo(AlarmFaultDaoImpl.java:375)
at com.sunrise.job.SyncAlarmTask.jsonToObj(SyncAlarmTask.java:109)
at com.sunrise.job.SyncAlarmTask.doProcess(SyncAlarmTask.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:260)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)

applicationContext.xml文件中配置:
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingLocations">
<list>
<value>classpath*:com/sunrise/model/*.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle10gDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.max_fetch_depth">3</prop>
<prop key="hibernate.default_batch_fetch_size">16</prop>
<prop key="hibernate.jdbc.batch_size">30</prop>
<prop key="hibernate.query.substitutions">
true 'Y', false 'N', yes 'Y', no 'N'
</prop>
</props>
</property>
</bean>
LsTAlarm.hbm.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.sunrise.model.LsTAlarm" table="LS_T_ALARM">
<composite-id name="id" class="com.sunrise.model.LsTAlarmId">
<key-property name="id" type="java.math.BigDecimal" >
<column name="ID" length="30" />
<!-- <generator class="native"/> -->

</key-property>
<key-property name="alarmIp" type="java.lang.String">
<column name="ALARM_IP" length="100" />
</key-property>
<key-property name="alarmDt" type="java.lang.String">
<column name="ALARM_DT" length="500" />
</key-property>
<key-property name="alarmObject" type="java.lang.String">
<column name="ALARM_OBJECT" length="500" />
</key-property>
<key-property name="alarmTitle" type="java.lang.String">
<column name="ALARM_TITLE" length="1000" />
</key-property>
<key-property name="alarmLevel" type="java.lang.String">
<column name="ALARM_LEVEL" length="50" />
</key-property>
<key-property name="alarmStatus" type="java.lang.String">
<column name="A_BEGIN_TIME" length="50" />
</key-property>
<key-property name="remark" type="java.lang.String">
<column name="REMARK" length="500" />
</key-property>
<key-property name="enabled" type="java.math.BigDecimal">
<column name="ENABLED" length="2" />
</key-property>
</composite-id>
</class>
</hibernate-mapping>
LsTAlarmId类:
package com.sunrise.model;

/**
* LsTAlarmId entity. @author MyEclipse Persistence Tools
*/

import java.math.BigDecimal ;
public class LsTAlarmId implements java.io.Serializable {

// Fields

private BigDecimal id;


private String alarmIp;
private String alarmDt;
private String alarmObject;
private String alarmTitle;
private String alarmLevel;
private String alarmStatus;
private String remark;
private String enabled;
// Constructors

/** default constructor */
public LsTAlarmId() {
}

/** full constructor */
public LsTAlarmId(BigDecimal id,String alarmIp, String alarmDt, String alarmObject,
String alarmTitle, String alarmLevel, String alarmStatus, String remark,
String enabled) {
this.id = id;
this.alarmIp = alarmIp;
this.alarmDt = alarmDt;
this.alarmObject = alarmObject;
this.alarmTitle = alarmTitle;
this.alarmLevel = alarmLevel;
this.alarmStatus = alarmStatus;
this.remark = remark;
this.enabled = enabled;
}

// Property accessors

public BigDecimal getId() {
return this.id;
}

public void setId(BigDecimal id) {
this.id = id;
}

public String getAlarmIp() {
return alarmIp;
}

public void setAlarmIp(String alarmIp) {
this.alarmIp = alarmIp;
}

public String getAlarmDt() {
return alarmDt;
}

public void setAlarmDt(String alarmDt) {
this.alarmDt = alarmDt;
}

public String getAlarmObject() {
return alarmObject;
}

public void setAlarmObject(String alarmObject) {
this.alarmObject = alarmObject;
}

public String getAlarmTitle() {
return alarmTitle;
}

public void setAlarmTitle(String alarmTitle) {
this.alarmTitle = alarmTitle;
}

public String getAlarmLevel() {
return alarmLevel;
}

public void setAlarmLevel(String alarmLevel) {
this.alarmLevel = alarmLevel;
}

public String getAlarmStatus() {
return alarmStatus;
}

public void setAlarmStatus(String alarmStatus) {
this.alarmStatus = alarmStatus;
}

public String getRemark() {
return remark;
}

public void setRemark(String remark) {
this.remark = remark;
}

public String getEnabled() {
return enabled;
}
public void setEnabled(String enabled){
this.enabled = enabled;
}
public boolean equals(Object other) {
if ((this == other))
return true;
if ((other == null))
return false;
if (!(other instanceof LsTAlarmId))
return false;
LsTAlarmId castOther = (LsTAlarmId) other;

return ((this.getId() == castOther.getId()) || (this.getId() != null
&& castOther.getId() != null && this.getId().equals(
castOther.getId())))
&& ((this.getAlarmIp() == castOther.getAlarmIp()) || (this.getAlarmIp() != null
&& castOther.getAlarmIp() != null && this.getAlarmIp().equals(
castOther.getAlarmIp())))
&& ((this.getAlarmDt() == castOther.getAlarmDt()) || (this
.getAlarmDt() != null
&& castOther.getAlarmDt() != null && this.getAlarmDt()
.equals(castOther.getAlarmDt())))
&& ((this.getAlarmObject() == castOther.getAlarmObject()) || (this
.getAlarmObject() != null
&& castOther.getAlarmObject() != null && this
.getAlarmObject().equals(castOther.getAlarmObject())))
&& ((this.getAlarmTitle() == castOther.getAlarmTitle()) || (this
.getAlarmTitle() != null
&& castOther.getAlarmTitle() != null && this.getAlarmTitle()
.equals(castOther.getAlarmTitle())))
&& ((this.getAlarmLevel() == castOther.getAlarmLevel()) || (this
.getAlarmLevel() != null
&& castOther.getAlarmLevel() != null && this.getAlarmLevel()
.equals(castOther.getAlarmLevel())))
&& ((this.getAlarmStatus() == castOther.getAlarmStatus()) || (this
.getAlarmStatus() != null
&& castOther.getAlarmStatus() != null && this
.getAlarmStatus().equals(castOther.getAlarmStatus())))
&& ((this.getRemark() == castOther.getRemark()) || (this
.getRemark() != null
&& castOther.getRemark() != null && this
.getRemark().equals(castOther.getRemark())))
&& ((this.getEnabled() == castOther.getEnabled()) || (this
.getEnabled() != null
&& castOther.getEnabled() != null && this.getEnabled()
.equals(castOther.getEnabled())));
}

public int hashCode() {
int result = 17;

result = 37 * result + (getId() == null ? 0 : this.getId().hashCode());
result = 37 * result
+ (getAlarmIp() == null ? 0 : this.getAlarmIp().hashCode());
result = 37 * result
+ (getAlarmDt() == null ? 0 : this.getAlarmDt().hashCode());
result = 37 * result
+ (getAlarmObject() == null ? 0 : this.getAlarmObject().hashCode());
result = 37 * result
+ (getAlarmTitle() == null ? 0 : this.getAlarmTitle().hashCode());
result = 37 * result
+ (getAlarmLevel() == null ? 0 : this.getAlarmLevel().hashCode());
result = 37
* result
+ (getAlarmStatus() == null ? 0 : this.getAlarmStatus()
.hashCode());
result = 37 * result
+ (getRemark() == null ? 0 : this.getRemark().hashCode());
result = 37 * result
+ (getEnabled() == null ? 0 : this.getEnabled().hashCode());
return result;
}

}
LsTAlarm.hbm.xml
...全文
173 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxs4808 2014-03-05
  • 打赏
  • 举报
回复
自己找到问题的了,那个是对的,session.save()要用这个com.sunrise.model.LsTAlarm类就可以了
cxs4808 2014-03-05
  • 打赏
  • 举报
回复
LsTAlarm类: package com.sunrise.model; /** * LsTAlarm entity. @author MyEclipse Persistence Tools */ public class LsTAlarm implements java.io.Serializable { // Fields private LsTAlarmId id; // Constructors /** default constructor */ public LsTAlarm() { } /** full constructor */ public LsTAlarm(LsTAlarmId id) { this.id = id; } // Property accessors public LsTAlarmId getId() { return this.id; } public void setId(LsTAlarmId id) { this.id = id; } } 所用表结构: create table LS_T_ALARM ( id NUMBER(30) not null, alarm_ip VARCHAR2(100), alarm_dt VARCHAR2(500), alarm_object VARCHAR2(500), alarm_title VARCHAR2(1000), alarm_level VARCHAR2(50), alarm_status VARCHAR2(50), remark VARCHAR2(500), enabled NUMBER(2) )
  • 打赏
  • 举报
回复
<value>classpath*:com/sunrise/model/*.hbm.xml</value>这种配置是不行的。知道实体配置文件名。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧