【发布时间】:2020-04-01 19:38:30
【问题描述】:
我正在试验 Micronaut 和 Kotlin。
我有一个 Hibernate JPA 连接,它工作得很好,但是,在为它创建一个 REST API 时,我想从列表序列化中排除一些属性。
因此,这就是我所做的:
领域类:
@Entity
@JsonView
class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@NotNull
@JsonView(View1::class)
var id : Long? = null
@NotNull
@Column(unique = true, length = 64)
@JsonView(View1::class)
lateinit var email : String
@NotNull
@Column(length = 16)
@JsonView(View2::class)
lateinit var firstName : String
@NotNull
@Column(length = 16)
@JsonView(View2::class)
lateinit var lastName : String
@NotNull
@JsonView(View2::class)
lateinit var address : Address
}
@Embeddable
class Address {
@Column(length = 64)
lateinit var street : String
@Column(length = 32)
lateinit var city : String
@Column(length = 16)
lateinit var state : String
}
View1 和 View2 并不有趣,因为根据文档,它们实际上是空类。
现在,在控制器中,我执行以下操作:
@Get("/")
@Produces("application/json")
@JsonView(View1::class)
fun list() : List<User> {
return userRepository.findAll()
}
期待一些合作,然而,这是我得到的:
[
{
"id": 1,
"email": "john@doe.com",
"firstName": "John",
"lastName": "Doe",
"address": {
"street": "23, Madison Street",
"city": "Brooklyn",
"state": "NY"
}
}
]
在application.yml中,json-view应该正确设置如下:
jackson:
json-view:
enabled: true
有什么线索吗?
【问题讨论】:
标签: java kotlin serialization jackson micronaut