我正在试验Micronaut和Kotlin。
我有一个HibernateJPA连接,它工作得很好,但是,在为它创建RESTAPI时,我想从列表序列化中排除一些属性。
因此,以下是我所做的:
域类:
@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"
}
}
]
在应用程序中。yml、json视图应正确设置为:
jackson:
json-view:
enabled: true
有线索吗?
在遇到同样的问题后,我最终偶然发现了这个直接使用ObjectMapper的答案:Jackson的@JsonView注释不起作用。
问题是,jackson。制图员。默认视图包含属性的默认值为true。在应用程序中将其显式设置为false。yml为我解决了这个问题。
jackson:
serializationInclusion: ALWAYS
json-view:
enabled: true
mapper:
default-view-inclusion: false
我有一个简单的类叫BeaconDao 然而,当我用@service或@component标记beaconDao时,一切都运行得非常好。有人能看出问题所在吗?
kotlin 1.2.10 Jackson-Module-kotlin:2.9.0 根据下面的答案,下面的工作对我来说
问题内容: 我正在尝试使用Java批注,但似乎无法使我的代码认识到其中存在。我究竟做错了什么? 问题答案: 您需要使用注释界面上的@Retention注释将注释指定为运行时注释。 即
我已经在google上搜索了将近一天这个问题,并尝试了几个修复(包括StackOverflow的4或5个),但都没有成功。我有一个带注释的POJO,用于Jackson 2.10.2 我使用这个POJO为一些外部请求创建XML。一切都很好,但现在我需要重新排序生成的XML中的字段,似乎什么都不起作用。 我首先尝试在班级层面进行设置: 然后,我尝试使用以下命令设置每个字段的顺序: 我还尝试在所有字段上
问题内容: 什么样的配置是需要使用注解来自像,等等?这是我的代码: 当我尝试在另一个类中使用它时,验证不起作用(即,创建该对象时没有错误): 为什么这不适用和的约束?我还需要做什么? 问题答案: 为了使JSR-303 bean验证在Spring中起作用,您需要做一些事情: 注释的MVC名称空间配置: JSR-303规范JAR :(看起来您已经拥有了) 规范的实现,例如休眠验证,它似乎是最常用的示例
问题内容: 我知道有一些关于此的帖子,但是它们大约一年了,没有任何回应。实际上,我们在PostgreSQL 8.4上使用的是Hibernate 4.2.1.Final。我们有两个这样的实体 实体A(顶级层次结构类) 实体B(子类) 如您所见,使用注释了一个实体,但是当使用来获取顶级类时 我们也通过属性获得了B子类。实际上,SQL语句包含。这仍然是Hibernate第四版中的错误,还是我做错了什么?