Использование JPA и JSON-сериализации - PullRequest
3 голосов
/ 03 сентября 2010

Я хотел бы иметь сущность JPA, которая имеет объект GSon в качестве поля / атрибута.Например:

@Entity
public class MyEntity {

    private JsonObject myObject;

    public JsonObject getObject() {
        return myObject;
    }

    public void setObject(JsonObject obj) {
        myObject = obj;
    }

}

Я не знаком с тем, как менеджер сохраняемости сохранит их.В идеале это будет как строка JSON, но по сути я хочу скрыть, как все сохраняется из общедоступного API.Я мог бы сделать это потенциально с внутренним классом, который имеет методы, такие как String getObject(), которым делегируется мой внешний класс, и выполняет анализ JSON для возврата JsonObject, но мне интересно, есть ли другой способ.

Ответы [ 2 ]

2 голосов
/ 03 сентября 2010

Может быть разумно просто хранить их как Strings (varchars) в БД. Просто выполните сериализацию / десериализацию GSon в вашем менеджере или dao.

1 голос
/ 03 сентября 2010

Если JsonObject реализует Serializable, то он должен вести себя правильно, но в зависимости от того, как написан этот класс, возможно, вы в конечном итоге будете хранить много ненужной информации. Преобразование его в строку кажется предпочтительным решением.

Возможно, связано: Объединение JAXB и JPA в одной модели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...