问题标签 [persist]
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.
java - 有没有办法在不编写查询或拥有 ID 的情况下在 Hibernate 中加载对象?
我可以将一个对象从 Java 持久化到数据库中,如下所示:
表人:
在Java中
这两个论点构成了关键。在这种情况下,name 和 groupID 是数据库中的唯一键,因此足以清楚地识别表中的任何特定行(可以有多个“dhackner”条目、多个“组 3”条目,但只有一个“dhackner、组3" 入口)。
假设设置正确,该代码将成功导致
我希望能够在不编写查询或使用任何自动生成的 ID 的情况下执行相反的操作:
表人:
在 Java 中:
silverlight - Silverlight,在不同页面和控件之间持久化数据
在 Silverlight 中,我们如何在不同的页面和控件之间持久化数据。在我们的应用程序中,我们计划使用中央数据对象来跟踪用户从不同页面和控件的更改。
我们如何才能实现这一目标?
iphone - 从 NSData 或 UIImage 中查找图像类型
我正在从第三方提供的 URL 加载图像。URL 上没有文件扩展名(或文件名)(因为它是一个模糊的 URL)。我可以从中获取数据(以 NSData 的形式)并将其加载到 UIImage 中并正常显示。
我想将此数据保存到文件中。但是,我不知道数据是什么格式(PNG、JPG、BMP)?我认为它是 JPG(因为它是来自网络的图像),但是是否有一种程序化的方式可以确定?我查看了 StackOverflow 和文档,但找不到任何东西。
TIA。
编辑:我真的需要文件扩展名吗?我将它保存到外部存储(Amazon S3),但考虑到它将始终在 iOS 或浏览器的上下文中使用(两者似乎都可以在没有扩展名的情况下解释数据)也许这不是问题.
android - 从 Android 的单选组中删除动态创建的单选按钮
:) 我的 RadioGroup 的 RadioButtons 是从一个 ArrayList(它位于我的主要活动中)动态创建的,其中充满了如下链接:
ArrayList = { "hxxp://helloworld.com", "hxxp://helloworld2.net", ..., "hxxp://whatever.com" }
然后我有一个名为“链接”的新类,它从我的主要活动中的菜单按钮调用,它设置了一个很好的布局,每个链接都有一个单选按钮(在滚动视图中)和一个“开始!” 页面底部的按钮(相对布局)。
这一切都很好,除了一件事。如果您使用后退按钮退出应用程序,然后通过单击 Android 菜单中的图标返回应用程序,您将进入主活动,然后单击菜单中的“链接”按钮,它们每次都会加倍。???像这样:
链接 0
链接 1
链接 2
链接 0 (再次)
链接 1 (再次)
链接 2 (再次)
每次离开离开后回到“链接”活动时,这会将链接附加到底部。在将它们放入 RadioGroup 之前,有什么方法可以调用一种方法来清除从链接活动中的最后一个会话生成的所有单选按钮?我尝试将我的更改onPause()
为finish();
我尝试释放缓存,RadioGroup.destroyDrawingCache();
但似乎什么也没做。
php - 在 codeigniter 模型中保留表名
在我的模型中,我使用如下构造函数设置它们
但是,如果我的模型的一个方法多次查询数据库,看起来 FROM 子句只包含在第一个查询中。有没有一种简单的方法可以为我的模型中运行的所有查询保留 FROM(除非我手动覆盖它)?
jpa - 复杂的 JPA 持续订单问题
我正在处理一个具有一些不寻常实体关系的项目,我在使用 JPA 时遇到了问题。有两个相关对象;用户,让我们调用另一个 X。用户与 X 有一对多和两个一对一的关系。它基本上看起来像这样
[用户实体]
[X实体]
在持久化一个新用户时,我还想在一个事务中持久化两个 x 实体(一个用于 activeX1,一个用于 activeX2)。Jpa 处理这个有点奇怪,日志看起来像这样:
这使得不可能在数据库中使用 NOT NULL 约束。有没有更好的方法来处理这些多重关系?还是一种控制 JPA 保留对象的顺序的方法?JPA 似乎真的在这个操作中明确地试图对我不利。任何帮助,将不胜感激。
google-app-engine - Google App Engine JPA persist() 方法未填充我的对象的 ID
我正在尝试保留一个新的 Java 对象,该对象具有自动生成的 Id,但在调用 EntityManager 的 persist() 方法时未填充它。我有我的对象类..
我坚持它基本上使用...
持久化后,不会填充 id 字段。我试过调用 em.flush() 但它抱怨它必须在事务中。我不需要或不想要交易,但我确实需要在持久化对象后立即使用此 ID。
这是 GAE 的 JPA 实现中的错误吗?
我们欢迎所有的建议!
c# - 表单身份验证和身份验证 cookie 不持久
意识到有很多与表单身份验证和 cookie 的持久性有关的问题,但是花了一天的大部分时间钻研,我仍然遇到困难。
我的问题
我正在开发一个 Web 应用程序(VS2010,但 webapp 是 f/w 3.5),它将对应用程序某些部分的访问限制为经过身份验证的用户(而其他部分是打开的)。我的问题是我的身份验证 cookie 在我关闭浏览器后似乎没有持续存在。
我的方法
我写了一个简单的 login.aspx 页面,在 web.config 中配置如下:
...并且各个页面的行为声明如下:
...除了这些饼干恶作剧之外,在各个方面都很好用...
一旦我在 login.aspx 页面中针对数据库(工作正常)对用户的登录名和密码进行了身份验证,我就会手动创建身份验证 cookie。如果用户选中“保持登录”复选框,则使用以下方法生成 cookie:
这里的目标是我将用户 Guid 存储在 auth cookie 中,然后我将使用它来将用户对象恢复到会话中(这也在 login.aspx 页面中,我的想法是我想采摘来自我创建的 auth cookie 的用户 guid,并使用它将相应的用户记录填充到会话中并重定向到请求的页面):
最后,这是我的 login.aspx 页面上登录按钮的代码:
正如您所看到的,没有什么特别复杂的事情发生,但是尽管在 GenerateAuthenticationCookie(..) 中创建的 authCookie 被正确创建(据我所知)它不会持续存在。
我注意到的一件事是,如果我将一些代码放入 global.asax.cs 中的 Application_AuthenticateRequest 方法中,例如:
...该断点有时会在新的浏览器会话之后被命中,尽管一旦我离开启动页面(在本例中是一个纯粹用于开发和测试的虚拟 start.aspx 页面)它就会停止命中。
所以,为这个冗长的问题道歉,但我真的在这里受苦。
我检查过/尝试过的事情
确保代码正在执行 - 是 浏览器设置 - 即退出时不删除 cookie - 确认不删除 尝试不同的超时 - 例如与 web.config 超时相同或不同,似乎并不重要......当然至少有二十或三十个不同的先前问题,但无济于事。
系统/开发环境
Windows 7 64 位,VS2010(但 proj 是 3.5),SQL Server 2008 Express。
在我的开发服务器上,这个问题仍然存在,所以我不确定它是否一定是环境问题——那台机器是运行 SQL 2008R2 的 WS2008R2 机器——同样的问题仍然存在。
有没有人在任何地方对我可以在这里尝试的事情有任何想法?我有一种预感,我可以通过拦截 global.asax.cs 中的初始 Application_AuthenticateRequest 命中并将某些内容填充到会话状态中以标记为“已验证”(以避免每次调用该方法时进行昂贵的身份验证尝试,结果是每页要多次。
提前致谢,
约翰
hibernate - 在集合未更改时停止 Hibernate 更新集合
我有两个定义如下的实体bean(删除了不相关的东西):
CriticalItems 定义如下:
在我的 DAO 代码中 - 我有这些方法:
当我加载 MasterItem 时,它会正确加载,并且还会按照指示加载带有数据的 CriticalItems 集。然后,我将此数据发送到我的 UI,并获取更新的副本,然后我尝试将其保留。用户更新 MasterItem 对象中的字段,但不触及 CriticalItems 集或其中的任何内容 - 它保持未修改。
当我的 save() 方法被调用时,Hibernate 坚持为关键项目集中的每个项目发送 SQL 更新,即使它们都没有以任何方式发生变化。
经过一番挖掘,这就是我认为正在发生的事情。当我执行 saveOrUpdate() 时,Hibernate 看到我的 MasterItem 对象处于分离状态,因此它尝试从磁盘重新加载它。但是,这样做时,它似乎正在使用准备好的语句(由 Hibernate 在启动时自动创建),并且该准备好的语句不会尝试加入 CriticalItems 数据。
所以 Hibernate 有我更新的 MasterItem 对象,其中包含一组完整的 CriticalItems,但使用没有集合的 MasterItem 作为它的“previousState”对象。因此,所有 CriticalItems 都通过 SQL 更新(不插入,这本身很有趣)。
我是否在我的注释中做了一些导致这种行为的事情?我知道我可以使用拦截器来找出项目确实发生了变化,或者更改了脏标志以覆盖 Hibernate 的默认算法——但这似乎是 Hibernate 应该在没有我干预的情况下自行处理的事情。
任何见解将不胜感激。
更新: 根据评论,我想我理解 saveOrUpdate() 和 merge() 之间的区别。我意识到 saveOrUpdate() 在所有情况下都会导致 SQL INSERT 或 SQL UPDATE ,并且理论上,如果对象已从其持久状态更改,则合并只会发布更新,但为了确定这一点,Hibernate必须先通过 SQL SELECT 重新加载对象。
所以,我想我可以回到我的代码并将 saveOrUpdate() 更改为 merge() 并且它会工作,但情况并非如此。
当我使用merge()时,我得到了
但如果我改回 saveOrUpdate() 效果很好。
CascadeType.MERGE
我终于找到了原因——我的注释中没有包含@Cascade
(呃)。一旦我解决了这个问题,异常就消失了。