如果有两个MODEL(A,A_log) ,A_log包含A的所有元素(包括A的ID),A_log唯一多的字段是自己的ID,那么在想在修改A之前的时候记录他的结果到A_log表中。可以这样写:
可以在A_log的MODEL中加一行:private A a;(set,get方法)
然后在A_log.xml中这样写:
<hibernate-mapping>
<class name="ie.cdclab.detect.eruption.model.LabEruptionBDectctLog" table="LAB_ERUPTION_B_DECTCT_LOG" schema="LAB">
<comment>发热伴出疹细菌检测表_log。</comment>
<id name="idEruptionBDectctLog" type="java.lang.String">
<column name="ID_ERUPTION_B_DECTCT_LOG" length="40" />
<generator class="uuid" />
</id>
<component name="labEruptionBDetect"> --用这个把相同的元素包起来,labEruptionBDetect是原表
<property name="idEruptionBDectct" type="java.lang.String">
<column name="ID_ERUPTION_B_DECTCT" length="40" not-null="true">
<comment>发热伴出疹细菌检测表ID。</comment>
</column>
</property>
<property name="idSampleinfo" type="java.lang.String">
<column name="ID_SAMPLEINFO" length="40" not-null="true">
<comment>标本信息ID。</comment>
</column>
</property>
</component>
</class>
</hibernate-mapping>
然后在service中:
public void saveLog(LabEruptionBDetect LabEruptionBDetect) {
// TODO Auto-generated method stub
LabEruptionBDectctLog LabEruptionBDetectLog = new LabEruptionBDectctLog();
LabEruptionBDetectLog.setLabEruptionBDetect(LabEruptionBDetect);
dao.save(LabEruptionBDetectLog);
}
分享到:
相关推荐
`update()`方法适用于对象已经存在于持久化上下文的情况,而`merge()`则会复制当前对象的状态到持久化的副本,即使原对象未被持久化。 删除对象时,使用`delete()`方法。例如: ```java session.delete(entity); `...
(2)将Hibernate所需的JAR包复制到WEB-INF/lib下。 (3)创建Hibernate的配置文件。 (4)利用Hibernate的第三方工具或Eclipse的有关插件从数据库中创建出相应的实体对象及其ORM映射文件。 (5)创建Hibernate的...
它首先创建一个与detached对象相同的托管副本,然后将副本的属性值复制到detached对象,最后更新数据库。请注意,`merge()`不会立即执行SQL,而是在Session提交时执行,这可能导致并发问题。 4. **乐观锁与悲观锁**...
Hibernate 是一个著名的开源对象关系映射(ORM)框架,它为Java开发者提供了数据持久化的解决方案。源码直接导入Eclipse 对于理解其工作原理、学习和调试都非常有帮助。接下来,我们将深入探讨Hibernate的核心概念、...
在Java开发环境中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hibernate则是一个优秀的对象关系映射(ORM)框架,它极大地简化了数据库操作。在使用Eclipse进行Hibernate项目开发时,正确配置所需的jar包是至...
当调用Session的save()方法时,Hibernate会为对象生成一个唯一的数据库标识(ID),并将对象的状态设置为“瞬时”到“持久化”。然而,save()方法不会立即执行SQL插入语句,而是在事务提交时执行,这被称为延迟保存...
4. **merge()**:将脱管态对象的状态复制到一个新的持久态对象上,然后将新对象关联到Session,同样在事务提交时执行SQL。适用于不确定对象是否已存在于数据库,或者需要合并对象的最新状态。 5. **delete()**:从...
描述:本指南旨在帮助开发者快速掌握Hibernate框架,了解其在对象关系映射(ORM)中的作用及其对Java环境下的数据持久化处理的影响。 ### 关键知识点解析: #### 1. 对象关系持久化(Object/Relational ...
- Struts2 与 Hibernate 集成时可能会出现 Jar 文件冲突,解决方法是删除冲突的库,然后将所需的库文件复制到项目的 lib 目录下。 3. **项目结构**: - 推荐采用分层架构,例如:Action 类(com.hwadee.action)...
- **replicate()**:复制对象到数据库,可以用于复制现有记录或创建新记录。 - **persist()**:与save()类似,但不适用于已存在的持久化实例。在JPA中,它是标准的持久化方法。 3. **事务管理**: - **begin...
10.9. 在两个不同数据库间复制对象 10.10. Session刷出(flush) 10.11. 传播性持久化(transitive persistence) 10.12. 使用元数据 11. 事务和并发 11.1. Session和事务范围(transaction scope) 11.1.1. 操作...
例如,`BeanUtils.copyProperties(deptinfo, deptActionForm)`将表单数据复制到持久化对象中,便于与Hibernate进行交互。 4. **查询操作**: Hibernate提供了HQL(Hibernate Query Language),这是一种面向对象的...
为了简化日志配置,可以从Hibernate的`etc`目录复制`log4j.properties`文件到项目的Classpath中,并修改其中的日志级别。例如,可以将`log4j.logger.org.hibernate`设置为`error`,以便仅在出现错误时记录日志。 ...
2. **领域对象映射**:如同 Hibernate ORM 将数据库表映射为 Java 对象,Hibernate Search 将这些对象映射到 Lucene 索引。你可以通过注解或者配置文件来定义哪些字段应该被索引以及如何索引。 3. **索引策略**:...
【描述】提到的链接指向了一个CSDN博客文章,虽然具体内容无法在此处复制,但通常这类文章会详细解释如何在非集成开发环境(IDE)中设置和运行Hibernate Tool。通常步骤包括以下几个关键知识点: 1. **下载...
- 使用Merge方法时要谨慎,可能会导致不必要的对象复制。 7. **数据库层面的优化**: - 定期进行数据库索引维护,确保查询效率。 - 调整数据库参数,如连接池大小、缓冲区大小等,以适应应用需求。 - 对于频繁...