Java论坛网»Java技术»请帮助Hibernate exception
请帮助Hibernate exception
问?:
请看以下报错:
org.hibernate.MappingException: An association from the table device refers to an unmapped class: int
at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1134)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1052)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1168)
at com.macroview.sztvip.PersistenceUtil.<clinit>(PersistenceUtil.java:13)
检查了好几次.sql,.hbm.xml和.java 实在不知道问题出在哪里,请帮忙指正,谢谢。
Device.hbm.xml
<?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 package="com.macroview.abt">
<class name="Device" table="device">
<id name="deviceId" column="device_id">
</id>
<property name="deviceName" column="device_name"/>
<property name="deviceSite" column="device_site"/>
<property name="deviceBrand" column="device_brand"/>
<property name="deviceType" column="device_type"/>
<property name="deviceModel" column="device_model"/>
<property name="deviceIp" column="device_ip"/>
<property name="snmpRo" column="snmp_ro"/>
<property name="snmpRw" column="snmp_rw"/>
<property name="showVer" column="show_ver"/>
<many-to-one name="officeId" column="office_id" not-null="true" lazy="false" update="false"/>
</class>
</hibernate-mapping>
Device.java
package com.macroview.abt;
public class Device {
private int officeId;
private int deviceId;
private String deviceName;
private String deviceSite;
private String deviceBrand;
private String deviceType;
private String deviceModel;
private String deviceIp;
private String snmpRo;
private String snmpRw;
private String showVer;
public Device()
{
}
public int getOfficeId()
{
return officeId;
}
public void setOfficeId(int officeId)
{
this.officeId = officeId;
}
public int getDeviceId()
{
return deviceId;
}
public void setDeviceId(int deviceId)
{
this.deviceId = deviceId;
}
public String getDeviceName()
{
return deviceName;
}
public void setDeviceName(String deviceName)
{
this.deviceName = deviceName;
}
public String getDeviceSite()
{
return deviceSite;
}
public void setDeviceSite(String deviceSite)
{
this.deviceSite = deviceSite;
}
public String getDeviceBrand()
{
return deviceBrand;
}
public void setDeviceBrand(String deviceBrand)
{
this.deviceBrand = deviceBrand;
}
public String getDeviceType()
{
return deviceType;
}
public void setDeviceType(String deviceType)
{
this.deviceType = deviceType;
}
public String getDeviceModel()
{
return deviceModel;
}
public void setDeviceModel(String deviceModel)
{
this.deviceModel = deviceModel;
}
public String getDeviceIp()
{
return deviceIp;
}
public void setDeviceIp(String deviceIp)
{
this.deviceIp = deviceIp;
}
public String getSnmpRo()
{
return snmpRo;
}
public void setSnmpRo(String snmpRo)
{
this.snmpRo = snmpRo;
}
public String getSnmpRw()
{
return snmpRw;
}
public void setSnmpRw(String snmpRw)
{
this.snmpRw = snmpRw;
}
public String getShowVer()
{
return showVer;
}
public void setShowVer(String showVer)
{
this.showVer = showVer;
}
}
device.sql
DROP TABLE IF EXISTS `device`;
CREATE TABLE `device` (
`office_id` INT(10) UNSIGNED NOT NULL,
`device_id` INT(10) UNSIGNED NOT NULL,
`device_name` VARCHAR(45) NOT NULL default '',
`device_site` VARCHAR(20) NOT NULL default '',
`device_brand` VARCHAR(20) NOT NULL default '',
`device_type` VARCHAR(20) NOT NULL default '',
`device_model` VARCHAR(20) NOT NULL default '',
`device_ip` VARCHAR(20) NOT NULL default '',
`snmp_ro` VARCHAR(10) NOT NULL default '',
`snmp_rw` VARCHAR(10) NOT NULL default '',
`show_ver` TINYTEXT NOT NULL DEFAULT '',
PRIMARY KEY (`device_id`),
KEY `FK_office` (`office_id`),
CONSTRAINT `FK_office` FOREIGN KEY (`office_id`) REFERENCES `office` (`office_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
org.hibernate.MappingException: An association from the table device refers to an unmapped class: int
at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1134)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1052)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1168)
at com.macroview.sztvip.PersistenceUtil.<clinit>(PersistenceUtil.java:13)
检查了好几次.sql,.hbm.xml和.java 实在不知道问题出在哪里,请帮忙指正,谢谢。
Device.hbm.xml
<?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 package="com.macroview.abt">
<class name="Device" table="device">
<id name="deviceId" column="device_id">
</id>
<property name="deviceName" column="device_name"/>
<property name="deviceSite" column="device_site"/>
<property name="deviceBrand" column="device_brand"/>
<property name="deviceType" column="device_type"/>
<property name="deviceModel" column="device_model"/>
<property name="deviceIp" column="device_ip"/>
<property name="snmpRo" column="snmp_ro"/>
<property name="snmpRw" column="snmp_rw"/>
<property name="showVer" column="show_ver"/>
<many-to-one name="officeId" column="office_id" not-null="true" lazy="false" update="false"/>
</class>
</hibernate-mapping>
Device.java
package com.macroview.abt;
public class Device {
private int officeId;
private int deviceId;
private String deviceName;
private String deviceSite;
private String deviceBrand;
private String deviceType;
private String deviceModel;
private String deviceIp;
private String snmpRo;
private String snmpRw;
private String showVer;
public Device()
{
}
public int getOfficeId()
{
return officeId;
}
public void setOfficeId(int officeId)
{
this.officeId = officeId;
}
public int getDeviceId()
{
return deviceId;
}
public void setDeviceId(int deviceId)
{
this.deviceId = deviceId;
}
public String getDeviceName()
{
return deviceName;
}
public void setDeviceName(String deviceName)
{
this.deviceName = deviceName;
}
public String getDeviceSite()
{
return deviceSite;
}
public void setDeviceSite(String deviceSite)
{
this.deviceSite = deviceSite;
}
public String getDeviceBrand()
{
return deviceBrand;
}
public void setDeviceBrand(String deviceBrand)
{
this.deviceBrand = deviceBrand;
}
public String getDeviceType()
{
return deviceType;
}
public void setDeviceType(String deviceType)
{
this.deviceType = deviceType;
}
public String getDeviceModel()
{
return deviceModel;
}
public void setDeviceModel(String deviceModel)
{
this.deviceModel = deviceModel;
}
public String getDeviceIp()
{
return deviceIp;
}
public void setDeviceIp(String deviceIp)
{
this.deviceIp = deviceIp;
}
public String getSnmpRo()
{
return snmpRo;
}
public void setSnmpRo(String snmpRo)
{
this.snmpRo = snmpRo;
}
public String getSnmpRw()
{
return snmpRw;
}
public void setSnmpRw(String snmpRw)
{
this.snmpRw = snmpRw;
}
public String getShowVer()
{
return showVer;
}
public void setShowVer(String showVer)
{
this.showVer = showVer;
}
}
device.sql
DROP TABLE IF EXISTS `device`;
CREATE TABLE `device` (
`office_id` INT(10) UNSIGNED NOT NULL,
`device_id` INT(10) UNSIGNED NOT NULL,
`device_name` VARCHAR(45) NOT NULL default '',
`device_site` VARCHAR(20) NOT NULL default '',
`device_brand` VARCHAR(20) NOT NULL default '',
`device_type` VARCHAR(20) NOT NULL default '',
`device_model` VARCHAR(20) NOT NULL default '',
`device_ip` VARCHAR(20) NOT NULL default '',
`snmp_ro` VARCHAR(10) NOT NULL default '',
`snmp_rw` VARCHAR(10) NOT NULL default '',
`show_ver` TINYTEXT NOT NULL DEFAULT '',
PRIMARY KEY (`device_id`),
KEY `FK_office` (`office_id`),
CONSTRAINT `FK_office` FOREIGN KEY (`office_id`) REFERENCES `office` (`office_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
答!: 1:
顶下...
答!: 2:
谢。。
答!: 3:
<class name="Device" table="device">
==>
<class name="com.macroview.abt.Device" table="device">
==>
<class name="com.macroview.abt.Device" table="device">
答!: 4:
没有指定主键的生成方式吧?
相关JAVA教程:
如何能调试ejb?
从文件中读取一系列不同数据类型的值然后赋给数组,如何事先确定数组类型?或者有其他不用数组的方法?顶者有?
如何获得DES加密的密钥?请教高人
请教各位大虾,一边是一家外包公司,但是去了是作一个比较大的java项目,一边是腾讯,去了作游戏测试,作java开?
关于java连接池问题
java连接池问题
为什么我的jstl 的tool都不起作用?
请教一个hibernate tool的问题,请用过的人指点
spring+struts+Hibernate开发的系统,想在form里实现访问数据库的验证,请教~~~~~~~~
关于tiles的问题..
问一个Hibernate的问题
session里面的值又自动的给复制了,奇怪