网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

jpa与kotlin如何正确的在springboot中使用

今天就跟大家聊聊有关 jpa与 kotlin如何正确的在spring boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联是一家集网站建设,细河企业网站建设,细河品牌网站建设,网站定制,细河网站建设报价,网络营销,网络优化,细河网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

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

看完上述内容,你们对 jpa与 kotlin如何正确的在spring boot中使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


分享名称:jpa与kotlin如何正确的在springboot中使用
文章地址:http://bjjierui.cn/article/gecsoe.html

其他资讯