我正在试验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
有任何线索吗?