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 String create_date;
private String modified_by;
private String modify_date; setter/getter.......}下面是数据库类型,帮我看看什么地方有字符问题?
Session session=null;
try {
session = HibernateUtil.openSession();
session.beginTransaction();
SQLQuery q = session.createSQLQuery("SELECT {TrainingMessageTypes.*} FROM TrainMessageTypes ORDER BY msg_type_id ASC");
q.addEntity("TrainMessageingTypes", TrainingMessageTypes.class);
List list = q.list();
session.getTransaction().commit();
return list;
} catch (Exception e) {
throw new Exception(e);
}finally {
HibernateUtil.closeSession(session);
}
}
在opensession的时候出错。我怀疑是java属性类型和数据库数据类型的问题。
<?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">
<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" />
<property name="msg_logic_id" column="msg_logic_id" />
<property name="via_PM" column="via_PM" />
<property name="via_email" column="via_email" />
<property name="via_SMS" column="via_SMS" />
<property name="default_msg_id" column="default_msg_id" />
<property name="created_by" column="created_by" />
<property name="create_date" column="create_date" />
<property name="modified_by" column="modified_by" />
<property name="modify_date" column="modify_date" />
</class>
</hibernate-mapping>
private String modify_date;
private String create_date;
这些都是datetime类型
你把type都加上看看
<!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">
<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" />
<!-- assigned表示要在程序中在save之前由程序指定一个 -->
</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>
private Date modify_date;
不好意思,刚刚修改了这两个属性的类型为java.util.Date;