Hibernate 复合主键级联操作配置:
@Audited
@Entity
@Table(name = "REFERENCE_CODE")
@NamedQueries({
@NamedQuery(name = "ReferenceCode.findAll", query = "SELECT p FROM ReferenceCode p"),
@NamedQuery(name = "ReferenceCode.findbyRefcode", query = "SELECT code FROM ReferenceCode code WHERE "
+ "code.refCode = :refCode AND code.referenceCodeDomain.codeType = :codeType AND code.publisherId = :publisherId"),
@NamedQuery(name = "ReferenceCode.findbyCodeTypeAndPublisherID", query = "SELECT code FROM ReferenceCode code WHERE "
+ "code.referenceCodeDomain.codeType = :codeType AND code.publisherId = :publisherId"),
@NamedQuery(name = "ReferenceCode.findbyCodeType", query = "SELECT rc FROM ReferenceCode rc WHERE rc.referenceCodeDomain.codeType = :codeType") })
@Cache(region = "ReferenceCode", usage = CacheConcurrencyStrategy.READ_WRITE)
@Cacheable(value = true)
public class ReferenceCode extends BaseEntity {
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = false)
@JoinColumns( {
@JoinColumn(name = "CODE_ID", referencedColumnName = "CODE_ID", insertable = false, updatable = false) })
@Cache(region = "com.gs.nisystem.dao.infra.entity.ReferenceCodeLang", usage = CacheConcurrencyStrategy.READ_WRITE)
private List<ReferenceCodeLang> langs;
}
//关联列
@Entity
@Table(name = "REFERENCE_CODE_LANG")
@NamedQueries({ @NamedQuery(name = "ReferenceCodeLang.findAll", query = "SELECT p FROM ReferenceCodeLang p") })
@Cache(region = "ReferenceCodeLang", usage = CacheConcurrencyStrategy.READ_WRITE)
@Cacheable(value = true)
public class ReferenceCodeLang extends BaseEntity {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 8083320578186003078L;
/** id property, it maps the composite primary key in REFERENCE_CODE_LANG table. */
@EmbeddedId
@AttributeOverrides({ @AttributeOverride(name = "referenceCode", column = @Column(name = "CODE_ID", nullable = false, precision = 13, scale = 0)),
@AttributeOverride(name = "lang", column = @Column(name = "LANG", nullable = false, precision = 13, scale = 0)) })
private ReferenceCodeLangPK id;
}
//复合主键:
@Embeddable
public class ReferenceCodeLangPK implements Serializable {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = -1564044758129864184L;
/** The reference code. */
@Column(name = "CODE_ID", nullable = false, precision = 13, scale = 0)
private Long referenceCode;
/** The lang. */
@Column(name = "LANG", length = 6)
private String lang;
}
分享到:
相关推荐
**标题解析:** “Hibernate 级联查询”是指在使用...以上是对“Hibernate级联查询”这一主题的详细说明,涵盖了相关概念、配置、使用示例以及可能的源码解析。由于没有具体的压缩包内容,无法提供更详细的实例分析。
在Hibernate的配置文件中,我们可以通过以下方式设置级联操作: ```xml ,delete-orphan" /> ``` 在这个例子中,父实体的`childEntity`属性将执行全部级联操作,包括添加、删除和更新,同时`delete-orphan`意味着如果...
在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...
本主题将深入探讨"hibernate级联增删改查",特别是针对"t_card主表"和"t_person从表"的关系。 首先,级联操作在Hibernate中是一种配置,用于指定当主表中的实体发生变化时,是否以及如何更新或删除关联的从表实体。...
一、Hibernate级联(Cascade) 级联操作允许我们将对一个实体的更改自动应用到与之关联的其他实体。在一对多关系中,如果一个实体(父实体)与多个实体(子实体)关联,设置级联属性可以确保在处理父实体时,子实体...
当调用`session.delete(student)`或`session.delete(course)`时,如果配置了级联删除,Hibernate会检查关联表,找出所有与被删除实体关联的记录,并一并删除。请注意,级联删除可能引起数据丢失,因此在使用时需谨慎...
在文档中提到的场景下,我们来详细探讨Hibernate级联删除的原理和配置方法。 首先,我们要理解关系映射中的几个关键概念。在给出的例子中,有四个表:A、AA、B和BB,它们之间存在一对多(one-to-many)和一对一...
二级缓存则基于SessionFactory,能在进程甚至集群间共享数据,但默认是关闭的,需要手动配置。查询缓存基于二级缓存,用于存储预编译的HQL或SQL查询结果,进一步减少数据库访问。 HQL(Hibernate Query Language)...
而在`Hibernate_01_1`的示例代码中,可能展示了如何在Hibernate中配置和使用这些关系,包括如何定义映射、如何处理级联和加载策略等。 总的来说,理解和熟练运用这些概念对于开发基于Hibernate的Java应用非常重要,...
- 映射文件(.hbm.xml),可能包含了一些级联关系的配置,虽然在Hibernate 3.2之后,推荐使用注解进行配置。 - 测试类(Test.java),用于执行不同的操作(如保存、更新、删除)以展示级联关系的效果。 通过这个...
### 常用Hibernate映射配置详解 #### 1. hibernate-mapping节点解析 `hibernate-mapping`节点是Hibernate映射文件中的顶级节点,用于定义一系列配置选项,控制整个映射文件的行为和映射规则。这些配置包括数据库...
本项目"struts+hibernate+ajax级联菜单"结合了这三者,旨在实现一种交互性更强的前端菜单功能。 首先,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它主要用于控制应用程序的流程,处理...
在这个"struts2 hibernate 实现无限级联 树形分类"项目中,主要目标是创建一个能够展示无限级联的树形分类结构。这种结构通常用于组织层次化的数据,如产品类别、部门结构或者权限角色等。无限级联意味着这个树可以...
接下来,我们将详细讨论如何在Hibernate配置中实现这种映射: 1. **配置实体类**:首先,你需要为每个类创建一个Java实体类,并使用`@Entity`注解标记它们。对于基类,可以使用`@Inheritance(strategy=...
本篇文章将详细讲解如何使用Hibernate通过配置文件反向生成数据库的所有配置文件,以及涉及的相关步骤和技术要点。 首先,Hibernate的反向工程(Reverse Engineering)功能可以帮助开发者从现有的数据库中生成实体...
综上所述,这些文件涵盖了Hibernate中范型的应用、级联操作的原理以及不同关联类型的配置和测试。通过学习和实践这些内容,开发者能够更好地掌握Hibernate在实际项目中的使用,提高数据库操作的效率和代码的健壮性。
这个“hibernate相关配置.rar”文件很可能包含了关于如何配置和使用Hibernate的各种资源,包括XML配置文件、实体类、映射文件等。接下来,我们将深入探讨Hibernate的核心概念和配置。 1. **什么是Hibernate?** ...
详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) ...cascade表示级联操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的属性。 例如: @ManyToOne(c
本示例将探讨如何在Spring与Hibernate整合的环境中实现一对一(OneToOne)映射,并进行级联操作,包括增、删、改、查。下面我们将详细讲解这一主题。 首先,一对一映射是数据库设计中的一种关系,表示两个表中的一...
- `hibernate.max_fetch_depth`:控制外连接加载(outer join fetch)的深度,限制了级联加载的对象层次。 - `hibernate.default_batch_fetch_size`:设置默认的批量获取大小,优化关联查询的效率。通常建议的值是...