3 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
1.為什么getOne(id)方法失???
請(qǐng)參閱文檔中的本節(jié)。你重寫已經(jīng)到位交易可能導(dǎo)致該問(wèn)題。但是,如果沒(méi)有更多信息,則很難回答。
2.什么時(shí)候應(yīng)該使用getOne(id)方法?
沒(méi)有挖掘到Spring數(shù)據(jù)JPA的內(nèi)部,差別似乎是用來(lái)檢索實(shí)體的機(jī)制。
如果您在“ 另請(qǐng)參見(jiàn) ” 下查看JavaDoc:getOne(ID)
See Also:
EntityManager.getReference(Class, Object)
似乎此方法只是委托給JPA實(shí)體管理器的實(shí)現(xiàn)。
然而,該文檔為findOne(ID)沒(méi)有提到這一點(diǎn)。
線索也在存儲(chǔ)庫(kù)的名稱中。 JpaRepository是JPA專用的,因此可以根據(jù)需要將調(diào)用委派給實(shí)體管理器。 CrudRepository是不可知使用的持久性技術(shù)??催@里。它用作多種持久性技術(shù)(如JPA,Neo4J等)的標(biāo)記接口。
所以這是不是一個(gè)真正的“差異”的兩種方法供您使用的情況下,它只是findOne(ID)比更專業(yè)更通用getOne(ID)。您使用哪一個(gè)取決于您和您的項(xiàng)目,但是我個(gè)人會(huì)堅(jiān)持使用,findOne(ID)因?yàn)檫@會(huì)使您的代碼減少實(shí)現(xiàn)的特定性,并且為將來(lái)無(wú)需過(guò)多重構(gòu)就可以遷移到MongoDB等之類打開(kāi)大門。
- 3 回答
- 0 關(guān)注
- 1582 瀏覽
添加回答
舉報(bào)