簡體   English   中英

休眠標准加載對象,該對象會變為持久對象嗎?

[英]Hibernate criteria loading object, will the object become persistent?

Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(50);
List cats = crit.list();

cats變成持久化對象在當前會話sess

我檢查了API ,但未提及任何內容。 我對此非常擔心,因此希望我能在某個地方正式提及對象是否會持久,當我第一次使用Hibernate的session來加載對象時,我不知道對象是持久的,所以我不小心修改了對象。如果值在對象內部,則更改將刷新到數據庫,這對我造成了很大的問題。

基於此https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html

接口org.hibernate.Criteria表示針對特定持久性類的查詢。

這是否意味着返回的對象是持久性的? 我可以安全地更改對象內部的值嗎?

如果對象不是永久對象,為什么要使用具有setReadOnly屬性的API文檔進行控制:

設置此條件加載的實體和代理的只讀/可修改模式。 此設置將覆蓋持久性上下文的默認設置。

我對此很困惑!

它會在當前會話中保持不變。 如果更改對象值並刷新,它將在事務結束時保存到數據庫中。 檢查https://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/objectstate.html10.4.1 執行查詢

查詢通常通過調用list()來執行。 查詢結果將完全加載到內存中的集合中。 通過查詢檢索的實體實例處於持久狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM