出现的问题:
Hibernate: SELECT * FROM tbl_training_message_types ORDER BY msg_type_id ASC
09:37:52,656 WARN [JDBCExceptionReporter:100] SQL Error: 208, SQLState: S0002
09:37:52,671 ERROR [JDBCExceptionReporter:101] 对象名 'tbl_training_message_types' 无效。
09:37:52,781 ERROR [[jsp]:711] Servlet.service() for servlet jsp threw exception
com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'tbl_training_message_types' 无效。
关键代码: session = HibernateUtil.openSession();
session.beginTransaction();
SQLQuery q = session.createSQLQuery("SELECT * FROM tbl_training_message_types ORDER BY msg_type_id ASC");
// SQLQuery q = session.createSQLQuery("SELECT TrainingMessageTypes.* FROM TrainingMessageTypes ORDER BY msg_type_id ASC");
q.addEntity(TrainingMessageTypes.class);
// q.addEntity("tbl_training_message_types", TrainingMessageTypes.class);
List list = q.list();
session.getTransaction().commit();
return list;
Hibernate: SELECT * FROM tbl_training_message_types ORDER BY msg_type_id ASC
09:37:52,656 WARN [JDBCExceptionReporter:100] SQL Error: 208, SQLState: S0002
09:37:52,671 ERROR [JDBCExceptionReporter:101] 对象名 'tbl_training_message_types' 无效。
09:37:52,781 ERROR [[jsp]:711] Servlet.service() for servlet jsp threw exception
com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'tbl_training_message_types' 无效。
关键代码: session = HibernateUtil.openSession();
session.beginTransaction();
SQLQuery q = session.createSQLQuery("SELECT * FROM tbl_training_message_types ORDER BY msg_type_id ASC");
// SQLQuery q = session.createSQLQuery("SELECT TrainingMessageTypes.* FROM TrainingMessageTypes ORDER BY msg_type_id ASC");
q.addEntity(TrainingMessageTypes.class);
// q.addEntity("tbl_training_message_types", TrainingMessageTypes.class);
List list = q.list();
session.getTransaction().commit();
return list;
你先检查下你数据库连接。
再就是检查你的hbm文件。是否设置了 catalog="属性。
session = HibernateUtil.openSession();
session.beginTransaction();
SQLQuery q = session.createSQLQuery("SELECT * FROM [chinalife].[dbo].[tbl_training_message_types] ORDER BY msg_type_id ASC");
q.addEntity(TrainingMessageTypes.class);
List list = q.list();
session.getTransaction().commit();
return list;我把代码修改为这样,还不行,提示:
Hibernate: SELECT * FROM [chinalife].[dbo].[tbl_training_message_types] ORDER BY msg_type_id ASC
11:09:47,921 WARN [JDBCExceptionReporter:100] SQL Error: 208, SQLState: S0002
11:09:47,921 ERROR [JDBCExceptionReporter:101] 对象名 'chinalife.dbo.tbl_training_message_types' 无效。
11:09:47,937 ERROR [[jsp]:711] Servlet.service() for servlet jsp threw exception
com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'chinalife.dbo.tbl_training_message_types' 无效。
但是我在数据库中 SELECT * FROM [chinalife].[dbo].[tbl_training_message_types] ORDER BY msg_type_id ASC是可以执行并查询到数据的。
<?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">
<hibernate-mapping default-lazy="false" auto-import="false" catalog="chinalife" schema="dbo">
<class name="com.liferay.samplehibernate.model.trainmessagetypes.TrainingMessageTypes"
table="tbl_training_message_types">
<id name="msg_type_id" type="java.lang.String">
<column name="msg_type_id" length="50" />
<generator class="assigned" />
</id>
<property name="msg_type_description" column="msg_type_description" type="java.lang.String" />
<property name="msg_logic_id" column="msg_logic_id" type="int" />
<property name="via_PM" column="via_PM" type="byte"/>
<property name="via_email" column="via_email" type="byte" />
<property name="via_SMS" column="via_SMS" type="byte" />
<property name="default_msg_id" column="default_msg_id" type="int" />
<property name="created_by" column="created_by" type="java.lang.String" />
<property name="create_date" column="create_date" type="java.util.Date" />
<property name="modified_by" column="modified_by" type="java.lang.String" />
<property name="modify_date" column="modify_date" type="java.util.Date" />
</class>
</hibernate-mapping>
POJO类public class TrainingMessageTypes {
private String msg_type_id;
private String msg_type_description;
private int msg_logic_id;
private byte via_PM;
private byte via_email;
private byte via_SMS;
private int default_msg_id;
private String created_by;
private Date create_date;
private String modified_by;
private Date modify_date;
//setter/getter省略