JPA 菜鸟教程 14 自定义类型-@Embedded+@Embeddable

本文介绍了在JPA中如何使用@Embedded和@Embeddable注解实现自定义类型,以解决在Employee类中创建Address对象的需求。通过示例展示了Address和Employee类的定义,以及对应的DDL语句。提供了完整的源码地址供读者参考学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GitHub

src="//ghbtns.com/github-btn.html?user=je-ge&repo=jpa&type=watch&count=true" scrolling="0" width="110" height="20">

自定义类型

在hibernate中实现自定义类型,需要去实现UserType接口即可或者以Component的形式提供。

JPA的@Embedded注解有点类似,通过此注解可以在Entity模型中使用一般的java对象,不过此对象还需要用@Embeddable注解标注。

需求产生

Employee类有一个address属性,
address应该有city,street两个属性,
一般的写法直接在Employee类中写两个属性:
private String city;
private String street;

现在可以用一个Address类来代替此类写法,Address类包含了city和street,如此一来,我们在Employee类只要这样写:
private Address address;

ddl语句

CREATE TABLE `t_employee` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `city` varchar(255) DEFAULT NULL,
  `street` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值