2014-02-19 5 views
0

У меня есть класс, который ознаменовал два поля serilizeableTransient поля вызывает serializeable ошибки

@Transient 
private List<Edge> edges; 

@Transient 
private List<Cell> cells; 

и это работает, когда я получаю экземпляры этого от сервера к моему заявлению. Это клиент приложения. Когда я пытаюсь сохранить экземпляр этого класса на сервере, я получаю ошибку сериализации.

WARNING: 00100006: Class pojo.Cell is not Serializable 
at beans._MazeBeanRemote_Wrapper.saveMaze(beans/_MazeBeanRemote_Wrapper.java) 

Может кто-нибудь сказать мне, почему я получаю эту ошибку и как могу ее исправить?

+0

Возможно, ваши аннотации не работают так, как они предполагают? –

+0

Это то, что я думаю, но как заставить их работать в обоих направлениях? – onesixtyfourth

+0

Попробуйте сделать их просто 'private transient' –

ответ

0

Кажется, что ваши аннотации не работают.

Попробуйте сделать ваши поля просто private transient.

0

Вы реализовали интерфейс Serializable в своем классе?

И transient означает, что данное поле не будет сериализовано.

+0

Я не реализовал сериализацию, потому что я не хочу, чтобы эти поля были сериализованы. Вот почему они отмечены @Transient, но, похоже, это работает в одну сторону. – onesixtyfourth

+0

В этом случае вы должны реализовать Serializable, но помечайте эти поля как переходные. Таким образом, остальные поля будут сериализованы, за исключением 'edge' и' cells' – XpressOneUp

0

Может быть, есть путаница, есть два вида Transient:

transient: Java ключевое слово, чтобы обозначить поле, которое не будет сериализации

@Transient: JPA аннотацию, что указывает на то, что поле не будет persisted

В вашем случае охватывающий класс может реализовать интерфейс Serializable и пометить поля (и классы полей) transient.

Смежные вопросы