问题标签 [transient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3268 浏览

java - 空瞬态属性

我有一个用@PrePersist 注释注释的方法,但是我看到当执行此方法时,我的所有瞬态属性(带有@Transient 注释的属性)都为空。

当我调试应用程序时,我可以看到在调用 persist() 方法之前这个瞬态属性不为空,当它进入我的 PrePersist 方法时,所有瞬态属性都变为空。

PostPersist 方法也会发生这种情况,我需要此方法中的瞬态信息。

这种行为正常吗?如果不将此信息保存在我的数据库中,我可以避免它吗?

如果有帮助,我使用 Hibernate 3.5 和 JPA 2。

谢谢

0 投票
2 回答
4646 浏览

java - readObject() 与 readResolve() 恢复瞬态字段

根据Serializable javadoc,readResolve()旨在替换从流中读取的对象。但是肯定(?)您不必替换对象,因此可以使用它来恢复瞬态字段并返回原始引用,如下所示

而不是使用readObject()

当仅用于恢复瞬态字段时,是否有任何理由选择其中一个?实际上,我倾向于readResolve()因为它不需要参数,因此在“正常”构造对象时也可以轻松使用它,例如:

0 投票
1 回答
2423 浏览

java - 我感觉向实体添加标有@Transient 注解的字段非常容易出错。我对吗?

我有一些哲学上的直观感觉,即添加未映射到数据库的字段会破坏实体类,并且是解决问题的错误方法。

但是是否存在使用@Transient字段会导致隐含和难以修复的问题的具体情况?

@Transient例如,当我们的实体中有字段时,添加或删除二级缓存是否会破坏我们的应用程序?

相当大的更新:在对@Transient字段进行了一些思考之后,在我看来,@Transient字段应该以适当的方式使用。

通过“适当的方式”,我的意思是实体总是应该有相同的行为。null这意味着当 getter根据 @Transient 字段值不时返回 's 时,这是一个非常容易出错的行为。这意味着应该始终初始化 @Transient 字段。

而且我只看到 2 个正确使用的案例:

  1. @Transient 字段应该在对象的构造函数中初始化:

    /li>
  2. @Transient 字段可以延迟初始化:

    /li>

谁能评论这两个案例或描述我错过的其他案例?

0 投票
3 回答
3461 浏览

java - @Transient 属性应该用在 equals/hashCode/toString 中吗?

我有 JPA 实体,其中一些属性用@Transient.

equals/hashCode/toString我应该在方法中使用这些属性吗?

我的第一个想法是,但我不知道为什么。

  • 尖端?
  • 想法?
  • 解释?
0 投票
1 回答
502 浏览

wordpress - WordPress 瞬态

我正在尝试学习一些新的数据库技术,目前,我有机会申请并尝试新的东西。

Wordpress 创造了它的一些价值:“瞬态”并将其锁定在一个关键值上。

示例值:

a:20:{i:-1273996637;i:1284;i:-1273997086;}

我想知道的是关于如何创造这些价值的概念。

0 投票
3 回答
937 浏览

java - 将具有瞬态属性的对象写入流(Java)

我想将对象写入具有瞬态属性的流(或字节数组)中,以便能够在另一个 VM 中重建它。我不想修改它的属性,因为该对象是遗留应用程序的一部分。

标准的 Java 序列化机制没有帮助。我还有什么其他选择?

更新: 我问这个问题的原因是我想修改现有的 Spring 应用程序。它之前在进程中调用了 bean 的方法,但现在我想将 bean 移动到单独的机器上,并通过 HTTP 调用程序使用 Spring 远程处理。我对具有需要传递给此方法但不需要在应用程序的其他部分序列化的瞬态字段的参数有疑问。

0 投票
1 回答
815 浏览

data-structures - 为什么没有窥视!clojure 瞬态向量的函数?

Clojure 的一些持久性数据结构、向量、映射和集合具有瞬态类似物。对于向量,有pop!conj!函数,类似于popconj对于持久向量,但没有peek!

是否有技术原因导致peek!无法有效实施?还是在大多数用例中都不需要瞬态向量?我总能做到

但是没有内置解决方案似乎很奇怪。

0 投票
1 回答
578 浏览

asp.net - Fluorine TransientAttribute 和 Linq-to-SQL

我找到了一种解决方法,但本周早些时候我在使用FluorineFx时遇到了麻烦,我有一个 Linq-to-SQL 生成的对象,我想通过网络将其发送到 Flash。此对象包含 Flash 不需要的属性:

但是 Flex 无法处理重新充气这种类型,抛出:

ArgumentError:错误 #2173:无法读取流中的对象。类 flex.messaging.io.ArrayCollection 没有实现 flash.utils.IExternalizable,但别名为可外部化的类。

现在我不需要通过网络发送属性,所以我尝试了Marc Gravell在issue 456624中建议的步骤,首先使用 System.ComponentModel.DataAnnotations 中的MetadataTypeAttribute向它添加属性(从JasonW问题的评论中找到393687

不幸的是,FluorineFx 似乎还不支持元数据属性(这并不奇怪,tbh,它们是相当新的)。

我最终要做的是创建一个专用的 DTO,其中包含 Flash 关心的所有属性,而没有它不关心的属性。不是最优雅的解决方案。

那么,有没有其他人遇到过这个问题,你有没有找到更优雅的方法来解决它?

0 投票
2 回答
816 浏览

orm - 为临时记录添加多对多关系的学说

两个模型站点和语言共享多对多关系(它们是双向的) 如何在它们之间添加关系?

理想情况下,我想这样做:(将现有语言添加到新站点)

---- 添加语言的代码----

或者我应该只在调用 save() 之后添加语言,如果是这样,那是怎么做的?

提前致谢

0 投票
2 回答
998 浏览

java - 可以通过java中的反射设置字段的瞬态属性/标志吗?

是否有一种简单的方法可以通过反射在 Java 中指定字段是否应该是瞬态的,类似于如何使用 setAccessible() 设置字段的可访问性标志?