jjzjj

transient

全部标签

java - Gson反序列化和序列化 transient 字段

我有以下带有一个字段transient的Pojo类:publicclassUserimplementsSerializable{publicstaticfinallongserialVersionUID=1L;publicStringname;transientpublicUserSession[]bookings;}我希望使用Gson库对transient文件进行序列化和反序列化,但不希望在文件上对文件进行序列化。我怎样才能实现它? 最佳答案 如前所述inthedocumentation:Bydefault,ifyoumarkaf

java - 如何使用 jackson 序列化 transient 场?

我们使用Jackson的JSON序列化来公开系统的内部状态以调试属性。默认情况下,jackson不会序列化transient字段-但我也希望序列化它们。如何序列化这些字段?我知道的一种方法是为这些字段提供setter/getter-但我不想这样做,因为我有一些我不想被调用的getX方法(例如,有一些setter/getter改变对象状态)。我知道我可以创建注释,但我真的想避免它。所以我的问题是:有没有办法设置jackson序列化所有对象字段?包括短暂的。 最佳答案 我使用Jackson2.4.3的解决方案:privatestatic

java - 对象引用未保存的 transient 实例 - 在刷新 : Spring Data JPA 之前保存 transient 实例

我有以下3个模型:模型1:预订@EntitypublicclassReservation{publicstaticfinallongNOT_FOUND=-1L;@Id@GeneratedValue(strategy=GenerationType.IDENTITY)publicLongid;@OneToMany(mappedBy="reservation",cascade=CascadeType.ALL,orphanRemoval=true)publicListroomReservations=newArrayList();}模型2:房间预订:publicclassRoomReserva

java - PMD "Bean Members Should Serialize"规则。我们可以用更聪明的方式来做吗?

这是(可能对某人有好处)“BeanMembersShouldSerialize”PMD规则,其中规定如下:Ifaclassisabean,orisreferencedbyabeandirectlyorindirectlyitneedstobeserializable.Membervariablesneedtobemarkedastransient,static,orhaveaccessormethodsintheclass.Markingvariablesastransientisthesafestandeasiestmodification.Accessormethodsshould

java - 在 Hibernate 中使用 transient 实体更新/合并现有的持久对象

我在我的数据库中处理一个相当复杂的对象图。我正在使用XStream序列化和反序列化这个工作正常的对象图。当我导入数据库中存在的对象的对象图时,它最初是transient的,因为没有ID并且hibernate对此一无所知。然后我有业务逻辑,通过确定新transient导入对象中的哪些对象映射到现有持久对象,在我的对象图的部分设置ID。然后我使用Hibernate的merge()和saveOrUpdate()。一些伪代码可以让您更好地了解我在做什么:ComplexObjecttransObj=xstream.import("object.xml");ComplexObjectpersist

java - java中static final transient的作用是什么?

在我正在处理的代码库中,几乎所有声明为staticfinalString的变量也都声明为transient。所以我有这样的字段:publicstaticfinaltransientStringVERSION="1.0";每当我发现这些transient关键字时,我很想删除它们,因为我认为它没有任何用处。在这种情况下,使用或不使用transient在行为上有什么区别吗? 最佳答案 static字段是隐式transient(当序列化一个static字段时,它的值无论如何都会丢失)。所以确实,不需要同时声明两者。

java - 是否可以使用反射获取类中的 transient 场

类中的transient字段能否通过反射获取?(使用getDeclaredField(..)) 最佳答案 是,这是一个普通字段。您可以通过以下方式检查它是否是transient的:Modifier.isTransient(field.getModifiers());transient:AkeywordintheJavaprogramminglanguagethatindicatesthatafieldisnotpartoftheserializedformofanobject.Whenanobjectisserialized,the

java - 如何不序列化继承的非 transient 字段?

问题我有一个带有非transientboolean字段的可序列化类(我们称它为A),以及一个子类(B),该类的同一字段应该是transient的。我该怎么做?更准确地说,我希望在反序列化B时将字段恢复为默认boolean值(false),尽管我希望在反序列化A时将其恢复为正确的值。其他字段尽管如此,还是应该恢复从A继承的。在功能上,A代表一个在session之间恢复的对象,B是A的特定类型,其状态应在每个新session上重置。快速代码示例:publicclassAimplementsjava.io.Serializable{privateStringlabel;//non-trans

java - 如何使从 JPA 中的父类(super class) transient 继承的映射字段?

我有一个无法更改的遗留架构。我正在为公共(public)功能使用一个基类,它包含一个嵌入式对象。有一个通常映射到嵌入式对象中的字段,它只需要在一个(许多)子类的持久性ID中。我创建了一个包含它的新id类,但随后我收到该字段被映射两次的错误。下面是一些示例代码,为了保持读者的理智而大大简化了代码:@MappedSuperclassclassBaseClass{@EmbeddedprivateDatadata;}@EntityclassSubClassextendsBaseClass{@EmbeddedIdprivateSubClassIdid;}@EmbeddableclassData{

c++ - Q文件对话框 : GtkDialog mapped without a transient parent

我有一个用C++中的Qt编写的程序的源代码片段,在Linux下运行,它创建一个QFileDialog来打开现有文件。如果我执行此操作,一切似乎都正常,但是当创建对话框时,我收到一条警告说“Gtk-Message:GtkDialogmappedwithoutatransientparent”。在另一个thread我发现调用此函数“gtk_window_set_transient_for()”可修复此错误。但是这个函数是GTK库的一部分但是我使用的是Qt框架。那么有什么解决方案可以解决这个错误吗?这个对话框的父级是一个QMainWindow:QStringfilename=QFileDia