如果属性具有相同的结果属性,则JSON writeValueAsString返回1

时间:2019-11-11 12:03:44

标签: java json hibernate jpa objectmapper

我有点困惑。我通过native-select语句

从数据库中获得结果
TypedQuery<User> query = entityManager.createQuery(
            "SELECT i FROM User i", User.class);
    result = query.getFirstResult;

具有User_created和user_updated作为属性的用户。结果看起来很好(整个user_created和user_updated属性),但是如果我使用

String entity = objectMapper.writerWithView(v).writeValueAsString(result);

实体看起来像:

"user_created": {
    "@id": 1,
    "id": 11737,
    "fullname": "Max Mustermann",
    "email": "max.mustermann@gmx.de",
    "username": "maxi"
},
"user_updated": 1,

它应该像这样:

  "user_created": {
        "@id": 1,
        "id": 11737,
        "fullname": "Max Mustermann",
        "email": "max.mustermann@gmx.de",
        "username": "maxi"
    },
  "user_updated": {
        "@id": 1,
        "id": 11737,
        "fullname": "Max Mustermann",
        "email": "max.mustermann@gmx.de",
        "username": "maxi"
    },

如果我在同一结果上有两个不同的用户用于user_updated和user_created,则结果看起来应该像这样:

 "user_created": {
        "@id": 1,
        "id": 11737,
        "fullname": "Max Mustermann",
        "email": "max.mustermann@gmx.de",
        "username": "maxi"
    },
  "user_updated": {
        "@id": 1,
        "id": 4172,
        "fullname": "Simone Musterfrau",
        "email": "simone.musterfrau@gmx.de",
        "username": "simi"
    },

也许有一个结果相同的问题?就像我说的那样,SELECT查询后的结果看起来应该如何。

我发现了中心问题。在我的实体上,我使用

@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@id", scope = User.class)

但是我的实体需要这个。也许有人可以告诉我,如果对象映射器有任何对象,或者我可以向实体添加一些属性。

0 个答案:

没有答案