假设我已经为我的类使用了javax.persistance注释,如果我使用hibernate来持久保存这些类的对象,那么我需要做什么样的更改才能迁移到另一个ORM工具?例如,如何更改以下代码以采用新的ORM工具?我知道我需要更改import语句,但其余代码呢?
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
public class Driver {
private static StandardServiceRegistry serviceRegistry;
private static SessionFactory sessionFactory;
public static void main(String[] args) {
MyClass obj = new MyClass();
obj.setUserID(3);
obj.setName("shsdassaadfna");
Configuration configuration = new Configuration().configure();
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
sessionFactory = configuration.configure().buildSessionFactory(serviceRegistry);
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(obj);
session.getTransaction().commit();
session.close();
}
}
答案 0 :(得分:3)
虽然您确实使用了javax.persistence
注释,但其余代码都是特定于Hibernate的,因此ORM更改需要重新编写代码。
为了使您的代码与JPA供应商无关,您应该只使用JPA接口,entity manager而不是Hibernate会话等。即使这样,只有代码的完整测试覆盖率可以提供高水平的保证一切都会按预期继续工作。