gpt4 book ai didi

java - Hibernate:直接在bean中设置Id和调用load()或get()方法的区别?

转载 作者:行者123 更新时间:2023-11-30 07:08:43 27 4
gpt4 key购买 nike

以下是加载示例:-

Stock stock = (Stock)session.load(Stock.class, new Integer(2));
StockTransaction stockTransactions = new StockTransaction();
//set stockTransactions detail
stockTransactions.setStock(stock);
session.save(stockTransactions);

如果我直接设置 id 有什么区别:-

Stock stock =new Stock();
stock.setId(2);
StockTransaction stockTransactions = new StockTransaction();
//set stockTransactions detail
stockTransactions.setStock(stock);
session.save(stockTransactions);

因为我已经知道股票表的 ID。是调用负载还是获取?

最佳答案

What is the difference ...

您的第一个代码示例从数据库中获取对象,因此加载的对象将处于持久化状态。您的第二个示例将尝试使用全新 Stock 保存StockTransaction。这可能会导致主键错误(如果股票 ID 是唯一的)或重复条目。您应该根据您的要求选择使用哪种方式。如果您需要使用现有 StockStockTransaction(我假设这是您的情况,因为您写的是您知道 ID)- 您应该首先从数据库加载它。

Y call the load or get?

Session.load()如果数据库中没有这样的对象(具有这样的 id),将返回一个空字段的代理。

Session.get()如果没有具有该 ID 的对象,将返回 null。

使用哪一个取决于您和您的任务。我个人更喜欢 get()

关于java - Hibernate:直接在bean中设置Id和调用load()或get()方法的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23862969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com