相关疑难解决方法(0)

kotlin数据类+ bean验证jsr 303

我试图让Kotlin在spring-data-rest项目上使用jsr 303验证.

给出以下数据类声明:

@Entity data class User(
    @Id 
    @GeneratedValue(strategy = javax.persistence.GenerationType.AUTO)
    var id: Long? = null,

    @Size(min=5, max=15)
    val name: String
)
Run Code Online (Sandbox Code Playgroud)

@Size注释在这里没有任何效果,使我能够保存名称为1个字符的用户.
它在执行相同的示例时效果很好,但在Java类而不是Kotlin中.

这让我想起了Kotlin问题.

在此先感谢您的帮助!

jpa bean-validation kotlin spring-data-rest data-class

36
推荐指数
2
解决办法
1万
查看次数

Kotlin中的Retrofit2 + SimpleXML:MethodException:Annotation必须标记set或get方法

我想从API中获取XML数据,并使用Kotlin中的Retrofit2 + SimpleXML将其映射到Kotlin模型对象.

但是,我收到了来自SimpleXML的以下错误消息.

org.simpleframework.xml.core.MethodException:注释@ org.simpleframework.xml.Element(data = false,name =,required = true,type = void)必须标记set或get方法

这是获取的XML数据

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
    <result code="0">Success</result>
    <token>XXXXXXXXXXXXXXXXXXXX</token>
    <uid>4294967295</uid>
</response>
Run Code Online (Sandbox Code Playgroud)

Kotlin模型对象如下

@Root(name = "response")
public class User() {
    @Element public var result: String? = null
    @Element public var token: String? = null
    @Element public var uid: String? = null
}
Run Code Online (Sandbox Code Playgroud)

和APIClient如下.

interface  MyService {
    @GET("/testLogin.xml")
    fun getUser(): Call<User>
}

val retrofit = Retrofit.Builder()
        .baseUrl(baseURL)
        .addConverterFactory(SimpleXmlConverterFactory.create())
        .build()
val call = retrofit.create(MyService::class.java).getUser()
call.enqueue(object: Callback<User> {
        override fun onResponse(p0: …
Run Code Online (Sandbox Code Playgroud)

android kotlin simple-framework retrofit2

21
推荐指数
1
解决办法
5716
查看次数