我将使用以下代码将一个人的对象保存到数据库中:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setID(1);
person.setName("name-1");
person.setAddress("address-1");
Configuration configuration = new Configuration().configure().addAnnotatedClass(Person.class);
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
session.save(person);
transaction.commit();
}
}
我看到save
方法已经被废弃了。我们应该使用哪种替代方法?
save()
的出现替换为persist()
,因为两种方法具有完全不同的语义。虽然save()
_保证_在调用后对象中存在生成的键,但persist()
则没有。它们还具有不同的级联行为和其他可能不同的行为。很可能仅仅替换方法调用就会破坏任何复杂的应用程序。因此,每个替换都需要仔细调查其后果和进一步的伴随更改。 - UniversE