问题标签 [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 回答
3228 浏览

java - Saving an object into an Entity without persisting it in JPA

I am doing an application in play framework in which I need to store the same instance of a non-Entity object into a JPA Entity without persisting it into the database, I want to know if it's possible to achieve that or not using annotations. A sample code of what I am looking for is:

I tried @Embedded annotation but its supposed to embed the object fields into the entity table. Is there anyway to use @Embedded while keeping the object column hidden in the entity table?

0 投票
5 回答
1777 浏览

java - 在 Java 中使异常字段瞬态

我有一个扩展异常的类,因此必须是可序列化的。异常类包含一个不可序列化的字段,因此我正在考虑将其设为瞬态。我的理解是,这样做意味着如果我的类被存储,则该字段将无法恢复。在执行过程中,我的异常何时可能被序列化/反序列化?(据我所知,我不会将这些写入数据库或文件)。

0 投票
4 回答
13183 浏览

java - 瞬态变量有什么用?

可能重复:
为什么 Java 有瞬态变量?

瞬态关键字将用于防止特定变量的序列化。但是为什么我们不应该序列化数据呢?有没有内在的安全感?

0 投票
1 回答
2197 浏览

c# - Fluent nHIbernate 列与基类上的版本映射 - 保存子级会导致父级上的“对象引用未保存的瞬态实例......”错误

我有更新日期列映射的情况:

在 Parent(Person 实体)和 Child(PersonTelephone 实体与 Cascade.None for Person)继承的 AuditableEntityMapBase 基类上,映射如下:

在以下测试中保存子和刷新会话会导致父级上的“对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例”:

对我来说,在 PersonTelephone 映射上使用 Cascade.SaveUpdate 而不是 Cascade.SaveUpdate 对 Person 实体进行水合并进行 nHibernate 更新是不可行的,如下所示:

我还尝试使用 ReadOnly 方法,该方法最初有效:

但是,这导致我插入 PersonTelephone 表时出现问题,因为 PersonId 是一个 Not Null 列,并且在 nHibernate 插入期间未注入,因为它是只读的。

悲观锁定不符合我的用户要求,并且 OptimisticLock.All() 会影响性能。我还尝试在 Person 实体映射上使用 .Cascade.None() 。

唯一有效的方法是在 Person 和 PersonTelephone 表上有一个唯一的 Update 字段。这个解决方案对我来说很臭。然后我尝试为 nHibernate 实体字段提供唯一名称,但没有奏效。有没有其他人遇到过这个?有没有优雅的解决方案?

0 投票
2 回答
312 浏览

iphone - TableView 中的自定义部分

我在这个网站上搜索了一些帖子,但没有找到我的确切问题,所以我正在寻找一些建议。我目前有一个带有 TaskList 实体的应用程序,我用它来支持我当前的 TableView。我想根据实体的多个属性创建部分。例如,我有一个“isShared”bool属性和一个“已完成”bool属性,我想显示部分以对“共享”项目、“未共享”项目和“已完成”项目进行分组。

这是瞬态属性可以工作的情况吗?我见过的大多数应用程序只适用于单个属性,所以我无法围绕它展开我的大脑。

提前致谢。

0 投票
1 回答
3070 浏览

core-data - 核心数据瞬态计算属性

我有一个包含 lastName 和 firstName 属性的实体。由于超出此问题范围的原因,我想要一个 fullName 属性,该属性被计算为 firstName + space + lastName 的串联。

因为这纯粹是一个计算值,不需要重做/撤消或瞬态属性的任何其他更复杂的方面(合并等),我的直觉告诉我只需覆盖 getter 方法以返回所述计算值。阅读表明,如果我这样做,我唯一关心的是它是否符合 KVO,我可以通过使用 keyPathsForValuesAffectingVolume 来解决这个问题,以确保任何观察 fullName 的人对 firstName 或 lastName 触发通知的更改。

我错过了什么吗?我正在检查,因为我是这个环境的初学者。

0 投票
1 回答
2022 浏览

grails - 在脚手架视图中显示域瞬态属性

在我的 Grails 1.3.7 项目中,我有一个这样的域类:

}

我正在使用脚手架进行相应的创建/编辑操作。

我的问题是,即使我标记了要显示的密码确认约束,它也不会显示在脚手架视图中。我是否缺少一些东西来显示瞬态属性?可能吗?

谢谢

0 投票
2 回答
890 浏览

nhibernate - 休眠 gethashcode 行为

在过去的 3 天里,我一直在为一种有趣的行为而苦苦挣扎,至少对我来说是这样。基本概念如下:在内存中创建一个对象,该对象有一个子列表。这个对象被保存到数据库中,孩子也被保存,级联模式。这工作正常,但如果在我保存之后我尝试删除一个孩子,从列表中删除,这不起作用,列表不会删除孩子。我发现列表HashedSet类型以某种方式缓存对象的哈希码,当它第一次插入列表时,在保存之前,在保存之后相同的对象没有相同的哈希码。但是该列表仍然假定旧的哈希码。我已经覆盖了GetHashCodeand Equals,经过大量的谷歌搜索和阅读,我找到了一篇博客文章这解释了 nhibernate 对GetHashCodeandEquals方法的使用。

这是我的实现

我使用了一个名为 orgHashCode 的变量,它在生成第一个哈希码之前返回哈希码,如果我使用这种方法,它似乎可以工作,但我认为这不是最好的解决方案,应该为当前对象生成哈希码而不是对于它的“第一个版本”。

我不知道我的解释是否足够清楚。任何提示将不胜感激。谢谢

0 投票
3 回答
2503 浏览

c# - NHibernate 2.1.2 未保存的瞬态实例

我已经阅读了很多问题和答案,但我找不到我的问题的解决方案。当我从 NHibernate 1.2.1 迁移到 2.1.2 时,会出现问题。我有这个常见的错误:

对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例。类型:Mikro.FareOn.Modules.Cards.Interface.BEC.CRResidenceRegion,实体:Mikro.FareOn.Modules.Cards.Interface.BEC.CRResidenceRegion

主类CRResidence的映射:

与多对一相关的类之一:

CRResidenceRegion 类的实现:

我尝试了所有类型的级联,但任何级联都无法正常工作。但就我而言,我更喜欢 cascade = "none"。我有客户端,通过在一个 NHibernate 会话中调用服务器端的方法来加载对象 CRResidenceRegion。加载 NHibernate 会话后关闭。客户端上的对象是正确的,数据库中的正确 ID 等等。然后给CRResidence对象赋值CRResidenceRegion对象。然后在服务器端调用方法:

我有很多这样的对象,当我迁移到 NHibernate 2.1.2 时出现了这个问题。在某些情况下,在定义级联样式后效果很好(“无”和“全部”一样有效,我需要)。可能是 NHibernate 的配置文件中的问题。

问题的先前定义:当我尝试插入或更新 CRResidence 的实例时,出现关于未保存的瞬态错误的错误。CRResidenceRegion的Instance完全初始化了,包括Id,所以没有问题。我在 Id 上实现了 Equal 方法。我试图清除缓存,但没有帮助。当我将级联更改为保存更新时,它可以工作,但是 CRResidenceRegion 的记录是重复的。一种解决方案是在保存 CRResidence 之前,我在同一会话中从数据库中读取 CRResidenceRegion(在下面的代码中注释),但这是不可接受的。

似乎 NHibernate 可能已经失去了对 CRResidenceRegion 的引用,并认为它是新创建的,但事实并非如此。

0 投票
1 回答
1712 浏览

c# - 在 NHibernate 中使用“分配的”ID

我有两个实体,JobLanguage,处于多对一关系。这些实体的映射配置如下:

我使用此代码将作业添加到数据库中

JobRepository.Add (Job job ) 很简单

问题是在打开 NHProfiler 的情况下运行此代码,我可以在INSERTJOB表之前看到以下警告:

警告:无法确定分配标识符为 47 的 en-GB 是暂时的还是分离的;查询数据库。在会话中使用显式 Save() 或 Update() 来防止这种情况。

然后是(不必要的)从LANGUAGE表中选择以加载 ID 为 47 的语言实体(其中“en-GB”是Job.SourceLanguage对象的代码)。

在我的情况下,我不想从数据库中更新、插入或删除语言实体(在它只是从其他实体引用的情况下),它实际上是不可变的表,始终填充正确的行。有没有办法告诉 NHibernate 只从我那里获取语言,并在插入JOB表时使用它的Id属性而不关心它是否存在于数据库中?

当我在将作业添加到存储库之前添加此行时

我不再收到警告或SELECT ,但是在我使用Language实体的任何地方都这样做有点麻烦。

非常感谢你。