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

使用2个ID指向两个不同表的类的jpa 2.0批注

使用2个ID指向两个不同表的类的JPA 2.0批注是通过@SecondaryTable@JoinColumn来实现的。

@SecondaryTable是一个JPA注解,用于指定一个实体类对应的第二个表。它可以在实体类上的注解中使用,用于指定第二个表的名称、连接列以及连接条件等信息。

@JoinColumn是一个JPA注解,用于指定实体类中的一个属性与另一个表的连接列之间的关系。它可以在实体类的属性上的注解中使用,用于指定连接列的名称、是否可空、是否唯一等信息。

下面是一个示例代码,演示了如何使用2个ID指向两个不同表的类的JPA 2.0批注:

代码语言:txt
复制
@Entity
@Table(name = "table1")
@SecondaryTable(name = "table2", pkJoinColumns = @PrimaryKeyJoinColumn(name = "id2"))
public class MyClass {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id1")
    private Long id1;

    @Id
    @Column(name = "id2", table = "table2")
    private Long id2;

    // 其他属性和方法
}

在上面的示例中,MyClass类使用了@SecondaryTable注解来指定了第二个表的名称为"table2",并通过pkJoinColumns属性指定了连接列的名称为"id2"。

同时,MyClass类中的id1属性使用了@Id@GeneratedValue注解来指定了主键,并通过@Column注解指定了对应的列名为"id1"。

id2属性也使用了@Id@Column注解来指定了主键,并通过@Column注解的table属性指定了对应的表名为"table2"。

这样,MyClass类就可以通过两个ID分别指向两个不同的表。

关于JPA 2.0的更多信息,可以参考腾讯云的云数据库MySQL文档:JPA 2.0

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

相关·内容

spring boot 中使用 jpa以及jpa介绍

2.1标准化 JPA 是 JCP 组织发布 Java EE 标准之一,因此任何声称符合 JPA 标准框架都遵循同样架构,提供相同访问API,这保证了基于JPA开发企业应用能够经过少量修改就能够在不同...2.3简单方便 JPA主要目标之一就是提供更加简单编程模型:在JPA框架下创建实体和创建Java 一样简单,没有任何约束和限制,只需要使用 javax.persistence.Entity进行注释...2.4高级特性 JPA 中能够支持面向对象高级特性,如之间继承、多态和之间复杂关系,这样支持能够让开发者最大限度使用面向对象模型设计企业应用,而不需要自行处理这些特性在关系数据库持久化...3.基于注解使用 本篇只介绍注解使用,另一种基于xml方式使用大家有兴趣可以自行了解一下。 3.1 JPA拥有哪些注解呢? 注解 解释 @Entity 声明为实体或。...@Table 声明名。 @Basic 指定非约束明确各个字段。 @Embedded 指定或它值是一个可嵌入实例实体属性。 @Id 指定属性,用于识别(一个主键)。

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

    Sun引入新JPA ORM(Object Relational Mapping)规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一...如声明一个实体 Customer,它将映射到数据库中 customer 上 @Table 当实体与其映射数据库不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用...里@Column设置都将不起作用 JPA规范中对@Lob注解并没有说明不能同时标注@Column注解,但是在实际使用中Hibernate JPA不支持这中标注方式 @Id @Id 标注用于声明一个实体属性映射为数据库主键列...生成器可以在、方法或者属性上定义 生成器是为多个实体提供连续ID,每一行为一个提供ID值,ID值通常是整数 元数据属性说明: name:生成器唯一名字,可以被Id元数据使用。...optional:表示该属性是否允许为null, 默认为true @Column 当实体属性与其映射数据库不同名时需要使用@Column 标注说明,该属性通常置于实体属性声明语句之前,还可与

    3.9K20

    【SpringBoot系列04】SpringBoot之使用JPA完成简单rest api

    【SpringBoot2.0系列01】初识SpringBoot 【SpringBoot2.0系列02】SpringBoot之使用Thymeleaf视图模板 【SpringBoot2.0系列03】SpringBoot...之使用freemark视图模板 【SpringBoot2.0系列04】SpringBoot之使用JPA完成简单rest api 【SpringBoot2.0系列05】SpringBoot之整合Mybatis... 接下来那么第一步就是创了 1、创 由于我们使用spring data jpa 而...jpa底层实现是hibernate,用过hibernate同学知道 hibernate可以通过实体逆向创建,只需要配置一下ddl-auto 就可以 所以我们需要在application.yml配置一下...时根据 model自动更新结构,即使结构改变了但行仍然存在不会删除以前行。

    1.7K60

    一篇 JPA 总结

    指定使用哪个持久化框架以及配置该框架基本属性 创建实体使用 annotation 来描述实体跟数据库之间映射关系 使用 JPA API 完成数据增、删、改、查操作 创建 EntityManagerFactory...,指出该Java 为实体,将映射到指定数据库。...**@Table** 当实体与其映射数据库不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用 **@id** @Id 标注用于声明一个实体属性映射为数据库主键列...关联关系映射(使用 IDEA 可以使用实体生成,也可以使用对应逆向生成实体) 单向多对一(orders - customer) 结构(oreders 中有 customer 外键映射...使用本地 SQL 语句查询,和以上两个使用方法不一样,此时使用 createNativeQuery() ?

    5.6K20

    Spring·JPA

    这个在方法层面使用注解,即使它有可能在字段层面使用了注解。...因此 JPA 允许指定如何布局不同列,有三种选项可供选择: SINGLE_TABLE:这种策略映射所有的到一个单一。...) ) 从 JPA v2.0 开始甚至可以在一对多关系中使用 @Embeddable 实体,主要借助于两个注解 @ElementCollection 和 @CollectionTable。...JPA 提供了如下三种不同方法: TABLE:这种策略会创建一个单独,其中为每个实体保存一条记录。这条记录包含实体名字和 id 列的当前值;每次有新 id 值请求时,就更新此中相应行。...属性 generator 和 name 用来关联这两个注解。这个策略使用是一个单独,当系统中有大量序列值请求时,它很容易成为性能瓶颈,因此 JPA 支持预定义大小,以使不用频繁请求数据库。

    3.3K30

    SpringDataJPA 系列之 JPA 简介

    简单说:ORM 就是建立实体和数据库之间关系,从而达到操作实体就相当于操作数据库目的。 ?...1.2 JPA 简介 1.2.1 概述   我们都知道不同数据库厂商都有自己实现,后来统一规范也就有了数据库驱动, Java 在操作数据库时候,底层使用其实是 JDBC,而 JDBC 是一组操作不同数据库规范...通过输出日志可以发现,JPA 会先将与实体类同名删除,然后依据实体创建一个,接着将数据插入新创建中。这是怎么回事,那不是数据库永远只有一条数据?...不同 value 会导致 JPA 执行不同操作。  ...注解 ☞ 常用注解 注解 说明 属性 @Entity 指定当前是实体 @Table 指定实体之间对应关系,不指定则默认名为名全小写 name:指定数据库名称 @Id 指定当前字段是主键

    4.4K20

    关于Java持久化相关资源汇集:Java Persistence API

    问题:您说EJB 2.0不支持继承,但是可以在几个不同位置(远程/bean)使用继承,只是不在本地使用而已。请解释一下。...此外,Kodo 是完全符合规范生产就绪JPA实现,并且已经发布。 问题:JPA是否支持组合主键? 回答:JPA支持自然ID和组合ID,以及数据库指派或实现指派数字值。...JPA规范力图避免要求使用任何明确性能调优策略,因为不同网络拓扑结构、数据存储系统和应用程序行为需要不同调优关注。 例如,OpenJPA允许在运行时 动态控制 fetch配置。...就像在会话bean或帮助中那样? 回答:JPA实现仅扫描实体(和映射超以及嵌入)来查找命名查询。...TopLink Essentials实现仅连接少量相关。您对解决该问题有什么建议? 回答:我认为这与“一对一”和“多对一”字段类型不同默认行为有关。

    2.5K30

    Spring 全家桶之 Spring Data JPA(一)

    其中表明user及主键名称id是变化,其余部分是固定结构,而实体名称和属性是与数据库名和字段是一一对应,因此可以通过实体名记属性确定要操作数据库和字段名字,从而可以根据实体不同拼接出不同...ORM思想主要目的就是操作实体就相当于操作数据库,这就需要建立两个映射关系,实体映射关系,实体字段和属性映射关系,不再关注SQL语句实现了ORM思想框架有Hibernate及Mybatis...标准化    JPA 是 JCP 组织发布 Java EE 标准之一,因此任何声称符合 JPA 标准框架都遵循同样架构,提供相同访问API,这保证了基于JPA开发企业应用能够经过少量修改就能够在不同...高级特性    JPA 中能够支持面向对象高级特性,如之间继承、多态和之间复杂关系,这样支持能够让开发者最大限度使用面向对象模型设计企业应用,而不需要自行处理这些特性在关系数据库持久化...三、如何使用JPA API 3.1 - 基本增删改查实现 创建Customer实体对应数据库customer CREATE TABLE customer ( cust_id bigint(32

    1.4K20

    DDD Command模型

    该标识符字段必须由@AggregateIdentifier批注注释。如果您使用JPA并在聚合上使用JPA批注,则Axon也可以使用JPA提供@Id注解。      ...Entity public class MyAggregate{ @Id //When annotating with JPA @Id, the @AggregateIdentifier annotation...Axon为复杂聚合结构中event sourcing提供支持。声明子实体字段必须使用@AggregateMember进行注释。 此注释告诉Axon注释字段包含应该检查命令和事件处理程序。...要在聚合中定义命令处理程序,只需使用@CommandHandler注释命令处理方法即可。@CommandHandler批注方法规则与任何处理程序方法相同。...如果字段名称和路由属性不同,则可以使用@EntityId(routingKey =“customRoutingProperty”)显式提供一个值。

    2.5K30

    SpringBoot2.0 基础案例(09):集成JPA持久层框架,简化数据库操作

    主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营局面。JPA是在吸收现有ORM框架基础上发展而来,易于使用,伸缩性强。...二、与SpringBoot2.0整合 1、核心依赖 <!...,然后根据bean重新来生成新,容易导致数据丢失,(建议首次创建时使用)。...3)update 第一次加载hibernate时根据bean会自动建立起结构,以后加载hibernate时根据bean自动更新结构,即使结构改变了但行仍然存在不会删除以前行。...4)validate 每次加载hibernate时,验证创建数据库结构,只会和数据库中进行比较,不会创建新,但是会插入新值。 3、实体对象 就是根据这个对象生成结构。

    68130

    SpringBoot开发案例之整合Activiti工作流引擎

    环境 软件 版本 SpringBoot 1.5.10 activiti-spring-boot-starter-basic 6.0 搭建 花了半天时间对比了下JBPM 和 Activit,以及两个工作流不同版本...-- 截止2019年2月1日 spring-boot 2.0 没有相关 activiti starter-basic--> org.springframework.boot...full最高级别,便于历史数据追溯 spring.activiti.history-level=full 声名为配置 ActivitiConfig: @Configuration//声名为配置,继承...act_ge_ 通用数据,ge是general缩写 act_hi_ 历史数据,hi是history缩写,对应HistoryService接口 act_id_ 身份数据id是identity...运行时数据,ru是runtime缩写,对应RuntimeService接口和TaskService接口,存储流程实例和用户任务等动态数据 演示 一个简单请假流程演示: ?

    1.2K20

    持久层框架中是什么让你选择 MyBatis?

    使用 Hibernate 时候,Java 开发可以使用映射文件或是注解定义 Java 语言中与数据库中之间各种映射关系,这里使用映射文件后缀为“.hbm.xml”。...在 Java 程序中,可以在 Customer 中添加一个 List 类型字段来维护这种一对多关系;在数据库中,可以在订单(t_order)中添加一个 customer_id 列作为外键,指向顾客...-- Customerid属性与t_customer中主键id之间映射 --> 如果是双向关联,则在 Java 代码中,可以直接在 Order 中添加 Customer 类型字段指向关联 Customer 对象,并在相应...-- Orderid属性与t_order中主键id之间映射 --> <!

    47230

    Spring 全家桶之 Spring Boot 2.6.4(四)- Data Access(Part C JPA

    JPA 2.0 Criteria查询) 二、Spring Data JPA 实现 CRUD 创建新工程spring-boot-jpa,引入Spring Data JPA 查看jpa依赖图...@Table(name = "jpa_tesla") // 设置实体对应名 public class Tesla { @Id // 设置主键 @GeneratedValue(strategy...接口中包含了基本增删改查方法 在yml中配置jpa jpa: hibernate: # 更新或者创建数据 ddl-auto: create # 控制台显示执行SQL...show-sql: true 如果是第一次启动应用,并且数据库没有,建议使用ddl-auto: create,应用启动可以根据实体创建响应,如果不是第一次启动,建议改为ddl-auto: update...中配置 jpa自动配置项都在JpaProperties中 启动主程序,会自动创建,根据实体属性及注解中声明名、字段名以及主键增长方式创建。

    1.2K30

    JPA入门和相关操作

    - 主要目的:操作实体就相当于操作数据库 - 建立两个映射关系: 实体映射关系 实体中属性和中字段映射关系 - 不再重点关注:sql语句 实现了ORM思想框架...JPA怎么取代Hibernate呢?JDBC规范可以驱动底层数据库吗?答案是否定,也就是说,如果使用JPA规范进行数据库操作,底层需要hibernate作为其实现完成数据持久化工作。...创建客户数据库和客户实体 创建客户数据库 /*创建客户*/ CREATE TABLE cst_customer ( cust_id bigint(32) NOT NULL...配置实体中属性和中字段映射关系 常用注解说明 @Entity 作用:指定当前是实体。 @Table 作用:指定实体之间对应关系。...,它被引用在@GeneratedValue中设置“generator”值中 String name(); //表示生成策略所持久化名,例如,这里使用是数据库中

    3.1K20

    干货|一文读懂 Spring Data Jpa

    支持面向对象高级特性: JPA 中能够支持面向对象高级特性,如之间继承、多态和之间复杂关系,最大限度使用面向对象模型 5....主角故事 Jpa 故事 为了让大伙彻底把这两个东西学会,这里我就先来介绍单纯Jpa使用,然后我们再结合 Spring Data 来看 Jpa如何使用。...那么在项目启动时会自动针对该类生成一张,默认名为名,@Entity注解name属性表示自定义生成名。...@Id注解表示这个字段是一个id,@GeneratedValue注解表示主键自增长策略,对于其他属性,默认都会根据属性名在中生成相应字段,字段名和属性名相同,如果开发者想要对字段进行定制,可以使用...select 用来指定查询返回结果实体或实体某些属性。 from 子句声明查询源实体,并指定标识符变量(相当于SQL别名)。 如果不希望返回重复实体,可使用关键字 distinct 修饰。

    2.8K20
    领券