spring boot + jpa + kotlin入门实例详解

发布时间 - 2026-01-11 02:28:05    点击率:

spring boot +jpa的文章网络上已经有不少,这里主要补充一下用kotlin来做。

kotlin里面的data class来创建entity可以帮助我们减少不少的代码,比如现在这个User的Entity,这是Java版本的:

@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String firstName;
private String lastName;
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
}

上面的那一大段变成kotlin,就像下面的这样的:

@Entity
data class User(@Id @GeneratedValue(strategy = GenerationType.AUTO) val id: Long = 0L, val firstName: String = "", val lastName: String = "")

连我这个用C#的人都觉得动心,如果你是Java的开发者,真的可以考虑试试看。

不过,这里还有个小提示,在kotlin里,如果你不给User给出默认的构造函数,那是会报错的,报错信息为

o.s.boot.web.support.ErrorPageFilter : Forwarding to error page from request / due to exception No default constructor for entity: : com._1b2m.springbootkotin.User; nested exception is org.hibernate.InstantiationException: No default constructor for entity: : com._1b2m.springbootkotin.User

提示是没有默认的构造函数,我们可以为User类的构造函数增加参数默认值来完成,就如同上面我写的样子。

题外话,在Java里,IDE可以帮助我们生成getter和setter。但是就算是这样,也没有像kotlin那样能把那么长的代码缩成一行,一个entity一行就写完,这感觉很不要太好。

另外,在Java里,使用CrudRepository时,这样用就行:

@Autowired
UserRepository repository;

但是在kotlin里,编译都无法通过,会报出这样一条错误:

property must be initialized or be abstract

要解决这个问题,需要增加lateinit,就像 这样:

@Autowired
lateinit var repository: UserRepository

其他的基本跟Java一致。

本文提到的源码放在github

在写spring boot程序时,kotlin的确少写了非常多的代码,这令我对这门语言也有所期待了。

以上所述是小编给大家介绍的spring boot + jpa + kotlin入门实例详解 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


# spring  # boot  # jpa  # 实例  # kotlin  # 关于Spring Boot和Kotlin的联合开发  # 使用Spring boot + jQuery上传文件(kotlin)功能实例详解  # Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL数据库的方法  # Spring Boot 与 kotlin 使用Thymeleaf模板引擎渲染web视图的方法  # Kotlin + Spring Boot 请求参数验证的代码实例  # 详解用Kotlin写一个基于Spring Boot的RESTful服务  # Spring Boot 与 Kotlin 使用Redis数据库的配置方法  # Spring Boot 与 Kotlin 上传文件的示例代码  # Spring Boot与Kotlin定时任务的示例(Scheduling Tasks)  # 利用Kotlin + Spring Boot实现后端开发  # 就像  # 报错  # 可以帮助  # 小编  # 这是  # 如果你  # 放在  # 你是  # 有个  # 那是  # 是这样  # 我对  # 其他的  # 我们可以  # 就行  # 的人都  # 给大家  # 写了  # 不给  # 那一 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  如何快速查询网站的真实建站时间?  微信小程序 wx.uploadFile无法上传解决办法  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Python进程池调度策略_任务分发说明【指导】  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  香港服务器租用费用高吗?如何避免常见误区?  微信小程序 配置文件详细介绍  nodejs redis 发布订阅机制封装实现方法及实例代码  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  如何在建站之星网店版论坛获取技术支持?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何注册花生壳免费域名并搭建个人网站?  Bootstrap整体框架之CSS12栅格系统  如何在阿里云高效完成企业建站全流程?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  如何用西部建站助手快速创建专业网站?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何快速生成橙子建站落地页链接?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  非常酷的网站设计制作软件,酷培ai教育官方网站?  进行网站优化必须要坚持的四大原则  Swift中循环语句中的转移语句 break 和 continue  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何撰写建站申请书?关键要点有哪些?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  北京企业网站设计制作公司,北京铁路集团官方网站?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel如何实现数据库事务?(DB Facade示例)  Linux网络带宽限制_tc配置实践解析【教程】  如何在建站之星绑定自定义域名?  如何选择PHP开源工具快速搭建网站?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  微信小程序 input输入框控件详解及实例(多种示例)  中山网站推广排名,中山信息港登录入口?  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  如何快速生成ASP一键建站模板并优化安全性?  Swift中switch语句区间和元组模式匹配  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】