- 浏览: 1214261 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (434)
- js (20)
- struts2 (77)
- spring (11)
- hibernate (17)
- ssh整合 (9)
- 程序例子 (4)
- 正则表达式 (8)
- JSP (20)
- IDE (15)
- 数据库 (10)
- 工作经验技巧感悟 (21)
- 程序员的幽默 (4)
- windows设置 (4)
- 名词解释 (4)
- 技术入门 (4)
- jFreeChart (16)
- OGNL (5)
- java基础 (46)
- dwr (4)
- portal (1)
- 示例用到的附件 (0)
- 优秀程序员45个习惯 (1)
- webService (1)
- shell (3)
- ibatis (3)
- 开发工具 (1)
- OS (3)
- xmlbean (2)
- design_pattern (0)
- error (1)
- testng (2)
- python (18)
- hadoop (21)
- mapreduce (9)
- Hive (0)
- HBase (0)
- ubuntu (22)
- 多线程 (7)
- 自我改进 (6)
- 设计模式 (1)
- ssh (2)
- ant (4)
- guake (2)
- 云计算 (9)
- hdfs (3)
- 大数据 (1)
- 电信业务 (1)
- maven (2)
- svn (5)
- UML (1)
- 待处理问题 (2)
- log4j (1)
- css (1)
- LevelDb (0)
- thrift (6)
- 辅助工具 (3)
- 算法 (1)
- tornado (0)
- twisted (1)
- jvm (0)
- 图书 (1)
- 其他 (1)
- oracle (2)
- mvn (1)
- 私人信息 (0)
- nio (1)
- zookeeper (1)
- JavaIO (3)
- mongodb (1)
- java-高级 (6)
- spring-深入 (1)
- tomcat (1)
- quartz (1)
- 面试题 (1)
- redis (3)
- EJBCA (0)
- spring-3.0 (1)
- memcache (3)
- 性能检测 (1)
- android (0)
- 开源项目 (1)
- 将博客搬至CSDN (0)
- 架构之路 (1)
最新评论
-
pjwqq:
“子类对象”都拥有了“父类对象的一个实例的引用”我晕,应该是“ ...
java继承--父类属性的存放位置 -
gwgyk:
关于楼主最后的问题,我想可能是这样:InputFormat默认 ...
eclipse 运行hadoop wordcount -
fanjf:
上述7点基本具备,可惜现在因为项目需要,做管理方面工作!
如何判断自己是否具有成为一名优秀程序员的潜质 -
摸爬滚打NO1:
链接已经失效
Eclipse添加JSEclipse 插件(js插件) -
younglibin:
看了以上7条, 自己 也不知道是否能够对上, 感觉没一点都有那 ...
如何判断自己是否具有成为一名优秀程序员的潜质
今天用hibernate 查了几个表(这几个表只有 基本属性字段,没有 id )!查询数据时,还没什么问题!
就在 更新 数据时 ,因为这几个表中都没有 id ,调用 hibernate 的查询 方法时 ,提示
如下错误:
元素类型“class”的内容必须与“(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)”匹配。
最后查找后 得知是 因为 hibernate 映射文件 中没有 id 找不到指定要更新的列 ;
这里的id 也就是 这个表的一个主键 ,也就是 只要哦找到一个 “主键”即可:
那么什么是:“主键”?
主键
能够唯一表示数据表中的每个记录的【字段】或者【字段】的组合就称为主键。 一个主键是唯一识别一个表的每一记录,但这只是其作用的一部分,主键的主要作用是将记录和存放在其他表中的数据进行关联。
作用
1、主键唯一的识别每一记录;
2、主键将记录和存放在其他表中的数据进行关联。在这一点上,主键是不同表中各记录之间的简单指针。
可以通过两种方式确定主键,
一种是基于实体类的复合主键,
另一种是通过定义主键类来实现。
不管通过哪种方式,复合主键都需要实现equals方法和hashcode方法,以作为不同数据之间是别的标志。
一.
基于实体类属性的复合主键
主键由实体类中的属性组成。
user.hbm.xml:
<?xmlversion="1.0"?> <!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <classname="cn.blogjava.start.TUser"table="t_user"catalog="sample"> <composite-id> <key-propertyname="lastname"column="lastname"type="string"/> <key-propertyname="firstname"column="firstname"type="string"/> </composite-id> <propertyname="age"type="integer"column="age"/> </class> </hibernate-mapping>
po:
publicclassTUserimplementsjava.io.Serializable{ //Fields privateIntegerage; privateStringfirstname; privateStringlastname; publicIntegergetAge(){ returnage; } publicvoidsetAge(Integerage){ this.age=age; } publicStringgetFirstname(){ returnfirstname; } publicvoidsetFirstname(Stringfirstname){ this.firstname=firstname; } publicStringgetLastname(){ returnlastname; } publicvoidsetLastname(Stringlastname){ this.lastname=lastname; } 自己实现 equals和hashCode ........
既然 找到了 “主键” hibernate 就被欺骗了 !我们就可以用hibernate 进行操作了
发表评论
-
hibernate 无主键 多表连接 更新数据
2009-12-23 15:23 2249今天遇到一个问题: 客户给了我 3张表; 这三张表 分别是从 ... -
Hibernate的各种保存方式的区别
2009-10-23 10:03 1024hibernate对于对象的保存提供了太多的方法,他们之间有很 ... -
hibernate继承映射
2009-09-05 11:13 1993A、采用subclass元素的继承映射: 采用这种方 ... -
hibernate映射文件one-to-many元素属性
2009-09-04 17:18 3591单向1——N关联关系的持久化类发生了改变,持久化类里需要使用集 ... -
hibernate映射集合属性
2009-09-02 15:43 1508hibernate映射集合属性通 ... -
hibernate中控制Insert 和 Update 语句的映射属性
2009-08-31 09:36 2956控制Insert 和 Update 语句的映射属性<pr ... -
hibernate映射文件many-to-many元素属性
2009-08-31 08:50 2909N-----N column(可选): 这个元素的外键关键字 ... -
hibernate映射文件property 元素属性
2009-08-31 08:49 3202property 元素 name:映射类属性的名字 ... -
hibernate映射文件many-to-one 元素属性
2009-08-31 08:48 3777many-to-one 元素 属性: name ... -
hibernate映射文件one-to-one 元素属性
2009-08-31 08:47 5833one-to-one 元素 属性: name:映射类 ... -
hibernate映射文件set 元素属性
2009-08-31 08:46 1931set 元素 属性: name:映射类属性的名字 ac ... -
hibernate映射文件id元素属性详解
2009-08-31 08:45 1514id 元素 属性: name: ... -
hibernate映射文件一级子元素详解
2009-08-31 08:44 1577子元素: meta:设置类或属性的元数据属性 subsel ... -
hibernate映射文件class元素属性详解
2009-08-31 08:42 1845class元素 属性: name:持久化类的全名 ta ... -
hibernate映射文件一级子元素属性详解
2009-08-31 08:42 860一级子元素: meta:用于设置类或属性的元数据属性 ty ... -
hibernate映射文件根元素属性详解
2009-08-31 08:40 1229根元素hibernate-mapping 属性: sche ...
相关推荐
Hibernate 更新某些字段 ...在 Hibernate 的 XML 配置文件中,我们可以设置某些属性的 update 属性为 false,这样 Hibernate 就不会更新这些属性。例如,我们可以设置 age 属性的 update 属性为 false: ```xml ...
在这里,`name`属性指定了实体类中的ID字段名称,`type`属性指定了ID字段的数据类型,而`column`元素用于指定数据库表中对应的列名以及精度等细节。不同的ID生成策略包括`increment`、`assigned`、`sequence`、`...
总之,Hibernate 3.2的属性文档介绍了框架中关于属性配置的全面指南,涵盖了从基本数据类型到复杂复合类型的各种映射策略,以及性能优化技巧。对于Java开发者而言,深入理解并熟练掌握这些知识,将有助于构建出高...
这里的"List"是Java集合框架中的一个接口,用于存储一组有序的元素,而在Hibernate中,它常用来映射数据库中的数组、列表或集合类型的数据。本文将详细探讨如何使用Hibernate映射集合属性List,以及如何让Hibernate...
【标题】"Hibernate 显示数据库数据" 在Java开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以用Java对象来操作数据库记录。本教程针对初学者,将介绍如何使用...
在 Hibernate 框架中,延迟加载(Lazy Loading)是一种优化数据访问性能的重要技术。它允许我们只在真正需要数据时才从数据库加载,避免一次性加载大量数据导致的内存消耗和性能瓶颈。当我们处理与实体相关的集合...
标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...
在Spring Boot中,数据源可以通过`spring.datasource.*`的配置属性进行设置。对于多数据源,我们需要创建多个数据源配置,例如: ```yaml spring: datasource: primary: url: jdbc:mysql://localhost:3306/main_...
在Hibernate中,数据字典对应的实体类会包含一系列属性,每个属性对应数据库表中的字段。例如,数据字典可能有一个实体类`Dictionary`,其中包含`id`、`name`、`code`等属性。这些属性通过注解或XML配置文件与数据库...
Hibernate 提供了多种数据类型,用于匹配不同数据库系统支持的标准 SQL 数据类型。这些数据类型包括: - **数值类型**:例如,`byte` 和 `java.lang.Byte` 映射到 `TINYINT`,`short` 和 `java.lang.Short` 映射到 ...
**Hibernate for NetBeans 数据操作方法** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。NetBeans 是一款强大的集成开发环境(IDE),提供了丰富的功能来支持...
Hibernate 数据源是 Hibernate 框架中连接数据库的关键组件,它是 Hibernate 与底层数据库进行交互的桥梁。在 Hibernate 应用程序中,数据源扮演着存储数据库连接信息的角色,包括数据库URL、用户名、密码等,使得 ...
1. 插入数据:调用Session的save()或saveOrUpdate()方法,Hibernate会自动为无ID的对象生成ID,并将其保存到数据库。 2. 更新数据:使用update()或saveOrUpdate()方法更新已存在的实体状态。 3. 删除数据:调用...
而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据。这篇博客主要探讨了Java数据类型如何与Hibernate的类型映射进行对应。 首先,Java的基本数据类型在...
在这个例子中,我们创建了一个名为`User`的简单类,包含`id`,`name`和`password`三个属性,以及对应的getter和setter方法。 2. **编写映射文件**: 随后,我们需要为`User`类创建一个`.hbm.xml`映射文件。在这个...
在Hibernate框架中,更新数据库中的数据是一个常见操作,但往往需要以正确的顺序和方法来实现。Hibernate提供了一系列的API...此外,在多用户环境下进行数据更新时,还需要考虑并发控制的策略,以保证数据的一致性。
Hibernate属性级别注解是Hibernate ORM框架中用于在Java对象(实体类)的属性上定义数据库映射的关键元素。这些注解使得开发人员能够无需XML配置文件就能声明对象与数据库之间的映射关系,从而简化了开发过程。以下...
`lazy`属性是Hibernate中用于控制数据加载策略的一个关键参数,主要用于延迟加载关联对象。当一个对象被加载时,与其关联的对象不一定立即加载到内存中,而是等到真正需要使用时才加载,这就是懒加载(Lazy Loading...
2. **级联保存**:`cascade="save-update"`属性意味着当保存或更新班级时,也会级联保存或更新相关的学生对象。 3. **inverse属性**:inverse属性用于指定一方是否负责维护关联关系。当`inverse="true"`时,意味着另...
### Hibernate 对 Blob 类型字段进行数据添加 #### 知识点概述 在处理数据库操作时,经常需要存储二进制大对象(Binary Large Object,简称 BLOB),例如图像、视频等非文本数据。BLOB 类型是数据库系统中用于存储...