首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JPA/Hibernate @SecondaryTable @PrimaryKeyJoinCloumn引用主表中的非主列

JPA/Hibernate是Java持久化技术的标准规范和实现,用于将Java对象映射到关系型数据库中。在JPA/Hibernate中,@SecondaryTable和@PrimaryKeyJoinColumn是两个注解,用于引用主表中的非主列。

@SecondaryTable注解用于指定一个或多个辅助表,这些表与主表具有一对一的关系。通过@SecondaryTable注解,我们可以将主表中的非主列映射到辅助表中。这样做的好处是可以将数据分散到多个表中,提高数据库的性能和灵活性。

@PrimaryKeyJoinColumn注解用于指定辅助表中的外键列与主表中的主键列之间的关联关系。通过@PrimaryKeyJoinColumn注解,我们可以将辅助表中的外键列与主表中的主键列进行关联,从而建立起主表和辅助表之间的关系。

这两个注解的使用场景通常是在需要将一个实体类映射到多个表的情况下。例如,假设我们有一个User实体类,其中包含了用户的基本信息,同时还有一些扩展信息需要存储在另外一个表中。这时,我们可以使用@SecondaryTable注解将扩展信息存储在辅助表中,并通过@PrimaryKeyJoinColumn注解建立主表和辅助表之间的关联。

推荐的腾讯云相关产品是TencentDB for MySQL,它是腾讯云提供的一种高性能、可扩展的云数据库服务。TencentDB for MySQL支持JPA/Hibernate技术,可以方便地将Java对象映射到MySQL数据库中。您可以通过以下链接了解更多关于TencentDB for MySQL的信息:https://cloud.tencent.com/product/tcdb

总结:JPA/Hibernate中的@SecondaryTable和@PrimaryKeyJoinColumn注解用于引用主表中的非主列。@SecondaryTable注解用于指定辅助表,@PrimaryKeyJoinColumn注解用于建立主表和辅助表之间的关联关系。腾讯云的TencentDB for MySQL是一个推荐的云数据库产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SpringDataJPA笔记(1)-基础概念和注解

@Column设置都将不起作用 JPA规范对@Lob注解并没有说明不能同时标注@Column注解,但是在实际使用Hibernate JPA不支持这中标注方式 @Id @Id 标注用于声明一个实体类属性映射为数据库主键...从表根据主表主键(列名为referencedColumnName值),建立一个类型一样主键,列名由name属性定义。...referencedColumnName:该引用列名 columnDefinition: 定义建表时创建此列DDL @PrimaryKeyJoinColumns 如果entity class...joinColumns:定义指向所有者主表外键,数据类型是JoinColumn数组。...inverseJoinColumns:定义指向所有者主表外键,数据类型是JoinColumn数组 @JoinColumn 如果在entity classfield上定义了关系(one2one或one2many

3.9K20

快速学习-JPA入门案例

第3章 JPA入门案例 3.1 需求介绍 本章节我们是实现功能是保存一个客户到数据库客户表。...我们选择Hibernate作为JPA提供商,所以需要导入Hibernate相关jar包。...3.3 搭建开发环境[重点] 3.3.1导入jar包 对于JPA操作,只需要从hibernate提供资料中找到我们需要jar导入到工程即可。 传统工程导入jar包 ?...如果此列不建在主表上(默认建在主表),该属性定义该所在从表名字搭建开发环境[重点] 3.3.4 配置JPA核心配置文件 在java工程src路径下创建一个名为META-INF文件夹,在此文件夹下创建一个名为...--jpa提供者可选配置:我们JPA规范提供者为hibernate,所以jpa核心配置兼容hibernate配 --> <property name="<em>hibernate</em>.show_sql

46220

JPA 注解学习

最近学习hibernate注解形式配置POJO类,将注解解析记下来,以备以后使用。 例1....定义对应表(默认为主表) (8) length 可选,长度(默认值255) (9) precision 可选,十进制精度(decimal precision)(默认值0) (...如果没有@JoinColumn注解,则系统自动处理,在主表中将创建连接,列名为:主题关联属性名 + 下划线 + 被关联端主键列名。...默认值: 关联表名:主表表名 + 下划线 + 从表表名;关联表到主表外键:主表表名 + 下划线 + 主表主键列名;关联表到从表外键名:主表中用于关联属性名+ 下划线 + 从表主键列名。...通常使用惰性加载方式, @Basic(fetch=FetchType.LAZY) @SecondaryTable @javax.persistence.SecondaryTable 将一个实体映射到多个数据库表

2.9K10

Jpa使用详解

JPA基于侵入式原则设计,因此可以很容易和其它框架或者容器集成 4....如果此列不建在主表上(默认建在主表),该属性定义该所在从表名字搭建开发环境[重点] 第六步:配置JPA核心配置文件 在java工程resources路径下创建一个名为META-INF文件夹,在此文件夹下创建一个名为...--jpa提供者可选配置:我们JPA规范提供者为hibernate,所以jpa核心配置兼容hibernate配 --> <property name="<em>hibernate</em>.show_sql...,它被<em>引用</em>在@GeneratedValue<em>中</em>设置<em>的</em>“generator”值<em>中</em> String name(); //属性表示生成策略用到<em>的</em>数据库序列名称。...,它被<em>引用</em>在@GeneratedValue<em>中</em>设置<em>的</em>“generator”值<em>中</em> String name(); //表示表生成策略所持久化<em>的</em>表名,例如,这里表使用<em>的</em>是数据库<em>中</em><em>的</em>“tb_generator

2.9K20

Spring Boot第八章-Spring Data JPA(续)

如果缺省@Table注释,系统默认采用类名作为映射表表名。实体Bean每个实例代表数据表一行数据,行对应实例一个属性。...@Column注释定义了将成员属性映射到关系表哪一和该结构信息,属性如下: 1)name:映射列名。...属性指定最大字符长度; 5)insertable:是否允许插入; 6)updatetable:是否允许更新; 7)columnDefinition:定义建表时创建此列DDL; 8)secondaryTable...如果此列不建在主表上(默认是主表),该属性定义该所在从表名字。...2018-08-24 ---- 6.JPA 关联表自定义动态查询 在实际业务,可能要关联表查询,并且查询条件是动态,这就需要在自定义查询基础上再来一波。

1.4K20

JPA入门和相关操作

JPA优势 标准化 容器级特性支持 简单方便 查询能力 高级特性 JPAhibernate关系 JPAHibernate关系就像JDBC和JDBC驱动关系,JPA是规范,Hibernate...--jpa提供者可选配置:我们JPA规范提供者为hibernate,所以jpa核心配置兼容hibernate配 --> <!...如果此列不建在主表上(默认建在主表),该属性定义该所在从表名字搭建开发环境[重点] 5....,它被引用在@GeneratedValue设置“generator”值 String name(); //属性表示生成策略用到数据库序列名称。...,它被引用在@GeneratedValue设置“generator”值 String name(); //表示表生成策略所持久化表名,例如,这里表使用是数据库

3.1K20

高级框架-springDate-JPA 第二天【悟空教程】

其中:JPA 提供四种标准用法为 TABLE,SEQUENCE,IDENTITY,AUTO。由于我们使用hibernate 实现,它也支持 hibernate 定义生成规则。...//strategy 属性用于指定 hibernate 中提供生成规则 //name 属性用于给使用生成规则起个名称,以供 JPA 引用 @GenericGenerator(name="uuid...在数据库建立一对多关系,需要使用数据库外键约束。 什么是外键? 指的是从表中有一,取值参照主表主键,这一就是外键。 一对多数据库关系建立,如下图所示 ?...* 删除主表数据: * 有从表数据引用 * 1、在默认情况下,它会把外键字段置为 null,然后删除主表数据。 * 如果在数据库表结构上,外键字段有空约束,默认情况就会报错了。...* 删除主表数据: * 有从表数据引用 * 1、不能删除 * 2、如果还想删除,使用级联删除 * 没有从表数据引用:随便删 * 在实际开发,级联删除请慎用!

2.5K10

SpringDataJPA 系列之 JPA 简介

面向对象开发方法是当今企业级应用开发环境主流开发方法,关系数据库是企业级应用环境永久存放数据主流数据存储系统。...JPA 基于侵入式原则设计,因此可以很容易和其它框架或者容器集成 ☞ 查询能力   JPA 查询语言是面向对象而非面向数据库,它以面向对象自然语法构造查询语句,可以看成是 Hibernate...JPAHibernate 关系就像 JDBC 和 JDBC 驱动关系,JPA 是规范,Hibernate 除了作为 ORM 框架之外,它也是一种 JPA 实现。...可以理解为 JPA 规范再次封装抽象,底层还是使用了 Hibernate JPA 技术实现,引用 JPQL(Java Persistence Query Language) 查询语言,属于 Spring...-- jpa 提供者可选配置:我们JPA规范提供者为 hibernate,所以 jpa 核心配置兼容 hibernate --> <property name="<em>hibernate</em>.show_sql

4.3K20

快速学习-JPA一对多

第3章 JPA一对多 3.1 示例分析 我们采用示例为客户和联系人。 客户:指的是一家公司,我们记为A。 联系人:指的是A公司员工。 在不考虑兼职情况下,公司和员工关系即为一对多。...3.2 表关系建立 在一对多关系,我们习惯把一一方称之为主表,把多一方称之为从表。在数据库建立一对多关系,需要使用数据库外键约束。 什么是外键?...指的是从表中有一,取值参照主表主键,这一就是外键。 一对多数据库关系建立,如下图所示 ?...@OneToMany: 作用:建立一对多关系映射 属性: targetEntityClass:指定多多方字节码 mappedBy:指定从表实体类引用主表对象名称...删除主表数据: 有从表数据 1、在默认情况下,它会把外键字段置为null,然后删除主表数据。如果在数据库表 结构上,外键字段有空约束,默认情况就会报错了。

1.9K20

Hibernate框架学习之四(JPA操作)

一、JPA概述以及它和Hibernate之间关系 1.1.Hibernate 概述   JPA Java Persistence API,是EJB3规范负责对象持久化应用程序编程接口(ORM接口)...1.2 JPAHibernate 区别   JPAHibernate之间关系,可以简单理解为JPA是标准接口,Hibernate是实现。   ...2.2.4 @Column:映射表格(可选)   @Column 描述了数据库表该字段详细定义 , 这对于根据 JPA 注解生成数据库表结构工具非常有作用 。   ...lkm_position; @Column(name="lkm_memo") private String lkm_memo; //一对多关系影射 //从表实体包含主表实体对象引用...在JPA多对多关联关系只需设置一方级联保存属性即可,本文中以用户为例,实现如下: ?

6.6K70

什么是JPA?Java Persistence API简介

该框架非常受欢迎,当时非常需要,它许多想法都在第一个JPA规范中被采用和编纂。 今天,Hibernate ORM是最成熟JPA实现之一,并且仍然是JavaORM流行选项。...像Hibernate ORM或EclipseLink这样框架将该任务编码为库或框架,即ORM层。作为应用程序体系结构一部分,ORM层负责管理软件对象转换,以便与关系数据库表和进行交互。...在Java,ORM层转换Java类和对象,以便可以在关系数据库存储和管理它们。 默认情况下,持久化对象名称将成为表名称,字段将成为。设置表后,每个表行对应于应用程序对象。...Java数据对象 Java Data Objects是一个标准化持久性框架,它与JPA不同之处主要在于支持对象持久性逻辑,以及它长期以来对使用关系数据存储支持。...主键 在JPA,主键是用于唯一标识数据库每个对象字段。主键可用于引用对象并将对象与其他实体相关联。每当您在表存储对象时,您还将指定要用作其主键字段。

10.1K30

应用对持久数据管理 | 从开发角度看应用架构7

主键字段用于将实体实例映射到数据库表行。 所有瞬态属性都映射到数据库表字段。 在数据库表,entity每个持久实例都有一个持久性标识,该标识在表唯一标识。...声明为临时属性不存储在数据库表,并且被称为持久性。...@Column @注释用于将字段或属性映射到数据库。...GenerationType.AUTO AUTO策略是默认ID生成策略,并且意味着JPA提供者使用其选择任何策略来生成主键。 Hibernate根据数据库特定方言选择生成策略。...这是用于生成ID值单独表格。 ID生成表格有两。 第一是标识生成器序列字符串,第二是存储ID序列整数值。

2.7K40

SpringBoot开发案例之整合Spring-data-jpa

201509100645102367.jpg 扯淡 扯了那么多篇SpringBoot相关案例,基本每行代码都是博纯手工编写,附代码案例,懂Maven和Git小伙伴必须可以手到擒来。...俗话说好,燕雀安知鸿鹄之志哉?然子鱼又焉知鱼之乐?curd并快乐着。每个人,都会有自己成长轨迹,或平凡或精彩或或或或,快使用双节棍,嘿嘿哈嘿。...简介 好了,淡就扯这么多,今天与大家分享一款"超薄"数据访问层框架Spring-data-jpa,依赖Hibernate,对Hibernate有一定基础,可以更好理解。...update:最常用属性,第一次加载hibernate时根据model类会自动建立起表结构(前提是先建立好数据库),以后加载hibernate时根据model类自动更新表结构,即使表结构改变了但表行仍然存在不会删除以前行...validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库表进行比较,不会创建新表,但是会插入新值。

1.4K40

SpringBoot开发案例之整合Spring-data-jpa

[201509100645102367.jpg] 扯淡 扯了那么多篇SpringBoot相关案例,基本每行代码都是博纯手工编写,附代码案例,懂Maven和Git小伙伴必须可以手到擒来。...俗话说好,燕雀安知鸿鹄之志哉?然子鱼又焉知鱼之乐?curd并快乐着。每个人,都会有自己成长轨迹,或平凡或精彩或或或或,快使用双节棍,嘿嘿哈嘿。...简介 好了,淡就扯这么多,今天与大家分享一款"超薄"数据访问层框架Spring-data-jpa,依赖Hibernate,对Hibernate有一定基础,可以更好理解。...update:最常用属性,第一次加载hibernate时根据model类会自动建立起表结构(前提是先建立好数据库),以后加载hibernate时根据model类自动更新表结构,即使表结构改变了但表行仍然存在不会删除以前行...validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库表进行比较,不会创建新表,但是会插入新值。

3.1K80

Spring 全家桶之 Spring Data JPA(四)

@JoinColumn,name外键字段名称,referenceColumnName参照主表主键字段名称 * 在客户实体类上(一对多中一这边)添加了外键配置,对于客户而言,具备了维护外键作用...客户与联系人一对多关系,用@OneToMany表示 @OneToMany(targetEntity = LinkMan.class) // name是指外键名,referencedColumnName是指主表主键...-- jpa实现厂家 --> <bean class="org.<em>hibernate</em>.<em>jpa</em>.HibernatePersistenceProvider...-- 注入<em>jpa</em><em>的</em>配置信息 记载<em>jpa</em><em>的</em>基本配置信息和<em>jpa</em>实现方式<em>的</em>配置信息--> ...<em>中</em>set customer也可以建立两者之间<em>的</em>关系,后台执行了4条SQL语句,因此可以看出在一对多关系中一<em>的</em>一边建立外键维护关系可以执行较少<em>的</em>SQL语句而完成外键关系<em>的</em>建立,而多<em>的</em>一方无需拥有外键关系<em>的</em>维护

1.6K20

如何完美解决 `could not execute statement; SQL ; nested exception is org.hibernate.exception.SQLGramm

关键词:HibernateJPA、SQLGrammarException、SQL语法错误、数据库映射。 引言 Hey,大家好!我是猫头虎,一个喜欢分享技术。...Hibernate 会尝试将 Java 对象转换成数据库表记录,当这种转换过程中出现问题时,Hibernate 会抛出这个异常。 2....QA 环节 Q1:我实体类和数据库字段完全匹配,但仍然报错? A:确保实体类字段与数据库表类型完全兼容,比如 String 对应 VARCHAR 或 TEXT 类型。...A:可以在 application.properties 添加以下配置来启用 SQL 日志: spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql...在未来文章,我们将继续深入探讨更多关于 HibernateJPA 高级特性,帮助大家更好地管理数据。

17810
领券