Hibernate这样的问题怎么处理

问题描述

/*==============================================================*//* DBMS name: MySQL 5.0 *//* Created on: 2011-11-3 19:37:33 *//*==============================================================*/drop database if exists db_hi;create database db_hi;use db_hi;/*==============================================================*//* Table: tb_bbs *//*==============================================================*/drop table if exists tb_bbs;create table tb_bbs( bbs_id int(4) not null auto_increment, bbs_boardid smallint(2), bbs_title varchar(70), bbs_content varchar(2000), bbs_sender varchar(20), bbs_sendtime datetime, bbs_face varchar(8), bbs_optime datetime, bbs_istop varchar(1), bbs_totoptime datetime, bbs_isgood varchar(1), bbs_togoodtime datetime, primary key (bbs_id));/*==============================================================*//* Index: index_1 *//*==============================================================*/create index index_1 on tb_bbs( bbs_sender);/*==============================================================*//* Table: tb_user *//*==============================================================*/drop table if exists tb_user;create table tb_user( id int(4) not null auto_increment, user_password varchar(15), user_name varchar(20), user_face varchar(8), user_sex varchar(2), user_phone varchar(15), user_qicq varchar(20), user_email varchar(20), user_from varchar(20), user_able varchar(4), primary key (id), unique key ak_key_2 (user_name));/*==============================================================*//* Index: un_username *//*==============================================================*/create unique index un_username on tb_user( user_name);alter table tb_bbs add constraint fk_reference_1 foreign key (bbs_sender) references tb_user (user_name) on delete cascade on update cascade;以上是mysql 的脚本然后使用hibernate处理 hibernate中配置文件BbsForm对应的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.liuyi.form.BbsForm" table="tb_bbs" catalog="db_bbs"> <id name="bbsId" type="java.lang.Integer"> <column name="BBS_ID" /> <generator class="increment"></generator> </id> <many-to-one name="tbBoard" class="com.liuyi.form.BoardForm" fetch="select"> <column name="BBS_BOARDID" /> </many-to-one> <many-to-one name="tbUser" class="com.liuyi.form.UserForm" fetch="select"> <column name="BBS_SENDER" length="20" /> </many-to-one> <property name="bbsTitle" type="java.lang.String"> <column name="BBS_TITLE" length="70" /> </property> <property name="bbsContent" type="java.lang.String"> <column name="BBS_CONTENT" length="2000" /> </property> <property name="bbsSendtime" type="java.util.Date"> <column name="BBS_SENDTIME" length="0" /> </property> <property name="bbsFace" type="java.lang.String"> <column name="BBS_FACE" length="40" /> </property> <property name="bbsOptime" type="java.util.Date"> <column name="BBS_OPTIME" length="0" /> </property> <property name="bbsIstop" type="java.lang.String"> <column name="BBS_ISTOP" length="1" /> </property> <property name="bbsTotoptime" type="java.util.Date"> <column name="BBS_TOTOPTIME" length="0" /> </property> <property name="bbsIsgood" type="java.lang.String"> <column name="BBS_ISGOOD" length="1" /> </property> <property name="bbsTogoodtime" type="java.util.Date"> <column name="BBS_TOGOODTIME" length="0" /> </property> <set name="tbBbsanswers" inverse="true"> <key> <column name="BBSANSWER_ROOTID" /> </key> <one-to-many class="com.liuyi.form.BbsAnswerForm" /> </set> </class></hibernate-mapping>UserForm对应的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.liuyi.form.UserForm" table="tb_user" catalog="db_bbs"> <id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="increment"></generator> </id> <property name="userName" type="java.lang.String"> <column name="USER_NAME" length="20" unique="true" /> </property> <property name="userPassword" type="java.lang.String"> <column name="USER_PASSWORD" length="15" /> </property> <property name="userFace" type="java.lang.String"> <column name="USER_FACE" length="40" /> </property> <property name="userSex" type="java.lang.String"> <column name="USER_SEX" length="2" /> </property> <property name="userPhone" type="java.lang.String"> <column name="USER_PHONE" length="15" /> </property> <property name="userOicq" type="java.lang.String"> <column name="USER_OICQ" length="20" /> </property> <property name="userEmail" type="java.lang.String"> <column name="USER_EMAIL" length="20" /> </property> <property name="userFrom" type="java.lang.String"> <column name="USER_FROM" length="20" /> </property> <property name="userAble" type="java.lang.String"> <column name="USER_ABLE" length="4" /> </property> <set name="tbBbses" inverse="true"> <key> <column name="BBS_SENDER" length="20" /> </key> <one-to-many class="com.liuyi.form.BbsForm" /> </set> </class></hibernate-mapping>如果在数据库操作层使用Session session=SessFactory.newInstance().openSession(); BbsForm bbsForm=(BbsForm) session.get(BbsForm.class, id);java.sql.sqlexception Invalid value for getInt() "xxxx"虽然知道hibernate内部一定是以user表中的id作为主键,但mysql既然支持这种不正确的主键关系,为什么hibernate就不能支持这种不通过只能使用id来标识对象,不知道大牛们对这种有什么看法

解决方案

hibernate+不合范式的DB绝对是折腾,虽然hiberante支持~~~~ <many-to-one name="tbUser" class="com.liuyi.form.UserForm" fetch="select" property-ref="userName">

时间: 2024-07-28 12:51:00

Hibernate这样的问题怎么处理的相关文章

hibernate中用annotation注解怎么样配置TIMESTAMP类型的数据呢

问题描述 请问hibernate中用annotation注解怎么样配置TIMESTAMP类型的数据并且能自动插入和更新呢?就是相当于mysql中timeTIMESTAMPDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP;这样的数据列,在hibernate中怎么样用annotation注解来配置呢(不要xml的配置方式).各位大虾帮帮忙啊,跪求中-- 解决方案 解决方案二:没用过注解吖.看下这个资料吧解决方案三:@Column(name="D_UP

混合Eclipse、WTP、Struts和Hibernate

使用Eclipse Web Tools Project.Tomcat应用服务器和MySQL数据库服务器,创建了一个Web应用程序.尽管该应用程序(DBTest)可能会很不错,但是也会存在一些局限性: 在servlet代码中,Java Server Pages (JSP) 名称是硬编码的 SQL也被硬编码到命令类中. 幸运的是,这些问题可以通过两种有趣的解决方案得以解决.第一个问题可通过使用开源Struts框架解决,该框架通过将模型动作映射到一个简单配置文件中的视图组件(比如JSP),从而分离应用

系统学习hibernate之三 transient、persistent、detached状态

transient.persistent.detached状态关系图如下: 1.transient状态的特征: * 在数据库中没有与之匹配的数据 * 没有纳入session的管理 2.persistent状态的特征: * persistent状态的对象在数据库中有与之匹配的数据 * 纳入了session的管理 * 在清理缓存(脏数据检查)的时候,会和数据库同步 3.detached状态的特征: * 在数据库中有与之匹配的数据 * 没有纳入session的管理 PS:了解这几种状态对深入使用hib

Hibernate流行架构浅析

本文向大家介绍Hibernate架构,可能好多人还不了解Hibernate架构,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. 用java来建立一个很有价值的web 应用不是一个简单的任务.在架构这个应用时要考虑很多的因素和问题.从更高的层次来看,开发人员面临着关于如何构建用户接口,何处驻留业务逻辑,以及如何实现数据持久性这些问题.这3层都有各自的问题需要回答.而每一层又需要实现那些技术?应用如何设计来进行松散耦合并能进行灵活变更?应用架构是否允许某一层变更而不影响到其它的层次?

Unitils+hibernate+Spring+PostgreSql做dao层测试遇到的错误

这两天看陈雄华的书<Spring3.0企业开发实战>17章做dao层的测试,由于使用postgreSql数据库,所以遇到了不少错误,很多问题百度都没找到答案,所以记录下来给遇到同样错误的童鞋做个参考.下面是我遇到的问题: 1.unitils目前还不支持Hibernate4,所以使用hibernate4的童鞋,要么换hibernate3要么自己用dbUnit做测试. 2.org.unitils.core.UnitilsException: Missing configuration for or

Java Persistence with Hibernate中文版Hibernate实战第2版出版

Java Persistence with Hibernate中文版Hibernate实战第2版出版 图灵出版社官方Hibernate实战(第2版)链接为: http://www.turingbook.com/Books/ShowBook.aspx?BookID=260 书 名: Hibernate实战(第2版) 评论星级: **** 书 号: 978-7-115-17448-2 原 书 名: Java Persistence with Hibernate 原出版社: Manning Publi

org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.*.Paper.totalTime

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:109) at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:586) at org.hibernate.tuple.entity.PojoEntityTuplizer.s

s2sh框架整合,hibernate无法执行删除问题

问题描述 s2sh框架整合,hibernate无法执行删除问题 dao层的代码 public void deleteDepartment(Serializable id,String delMode) { Department department=this.getDepartmentById(id); //通过页面出来的参书id,获得 这个对象 if("del_pre_relation".equals(delMode)){ Set users = department.getUser

java-关于spring+hibernate 注入sessionFactory为null的问题

问题描述 关于spring+hibernate 注入sessionFactory为null的问题 最近一个项目需要用到struts2+spring+hibernate组合框架,我在一点一点的做配置,但做到注入SessionFactory时,一直不成功,在网上搜的一些解决方案也都不适用.故在此发布,希望高手们不吝赐教.web.xml的配置为: <?xml version=""1.0"" encoding=""UTF-8""

Hibernate主键生成方式 Key Generator

Hibernate主键生成方式 Key Generator 主键产生器 可选项说明: 1) assigned 主键由外部程序负责生成,无需Hibernate参与. 2) hilo 通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态. 3) seqhilo 与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle. 4) increment 主键按数值顺序递增.此方式的实现机制