2015-08-15 194 views
0

我想了解是否有可能在JPA实体中有一个未映射的属性,并且还有序列化。我想这样做是因为我想查询数据库中的行,然后对这些返回的字段中的一些进行计算,并将结果填充到一个未映射的字段中。不过,我看到在实体中添加未映射属性的唯一解决方案是使用@Transient注释,这意味着该属性不会序列化。在JPA实体中序列化一个未映射的属性

任何想法/解决方法?

+2

“@ Transient”注释仅适用于JPA。如果序列化一个对象,该属性将被正常序列化(除非它具有'transient' **修饰符**)。所以请使用@Transient注解,因为这是做你想做的事的正确方法。 – Augusto

+0

从javax.persistence中添加@Transient实际上不会为我序列化它。 – user3397214

+0

你怎么知道它没有序列化? –

回答

0

我希望RigreGarciandía的回答工作(即使用@Transient),但...

您可以实现外部化。它可以让你的序列化和反序列化的完全控制,所以你可以写和读你喜欢的任何字段(并且可以在我的经验提高性能作为附带的好处):与@Transient注释

http://docs.oracle.com/javase/7/docs/api/java/io/Externalizable.html

2

场它应该使用Java序列化api进行序列化,检查是否有修饰符瞬态,该修饰符不允许您序列化该字段。

相关问题