Hibernate 至 WebSphere JPA - Java 規則

Hibernate 至 WebSphere JPA Java 規則位於 Java 程式碼複查 架構移轉規則種類下。 這些規則提供了如何移轉常用 Hibernate 介面及方法的相關資訊。 必須手動將 Hibernate 程式碼移轉至 WebSphere JPA。 如需移轉指引,請使用每個規則的詳細說明中的資訊及範例。

表 1. 架構移轉
規則名稱 快速修正程式 已採取的動作
不要使用 Hibernate 套件 此規則會偵測是否使用了其他規則未涵蓋的 Hibernate 套件參照。
不要使用 Hibernate Configuration buildSessionFactory 方法 此規則會標示 org.hibernate.cfg.Configuration buildSessionFactory 方法。 請改用 javax.persistence.Persistence createEntityManagerFactory 方法。
不要使用 Hibernate Query getNamedParameters 方法 此規則會標示 org.hibernate.Query getNamedParameters 方法。 請改用 javax.persistence.Query getParameters 方法。
不要使用 Hibernate Query list 方法 此規則會標示 org.hibernate.Query list 方法。 請改用 javax.persistence.Query getResultList 方法。
不要使用 Hibernate Query 方法來設定參數 此規則會標示 org.hibernate.Query set-parameter 方法。 請改用 javax.persistence.Query setParameter 方法。
不要使用 Hibernate Query setParameterList 或 setParameters 方法 此規則會標示 org.hibernate.Query setParameterListsetParameters 方法。 請改用 javax.persistence.Query setParameter 方法。
不要使用 Hibernate Query uniqueResult 方法 此規則會標示 org.hibernate.Query uniqueResult 方法。 請改用 javax.persistence.Query getSingleResult 方法。
不要使用 Hibernate Session beginTransaction 方法 此規則會標示 org.hibernate.Session beginTransaction 方法。 請改用 javax.persistence.EntityManager getTransaction 方法(其後緊接著對 javax.persistence.EntityTransaction begin 方法的呼叫)。
不要使用 Hibernate Session createCriteria 方法 此規則會標示 org.hibernate.Session createCriteria 方法。 請使用 javax.persistence.EntityManager getCriteriaBuilder 方法(其後緊接著對 javax.persistence.criteria.CriteriaBuilder createQuery 方法的呼叫)。
不要使用 Hibernate Session createQuery 方法 此規則會標示 org.hibernate.Session createQuery 方法。 請改用 javax.persistence.EntityManager createQuery 方法。
不要使用 Hibernate Session createSQLQuery 方法 此規則會標示 org.hibernate.Session createSQLQuery 方法。 請改用 javax.persistence.EntityManager createNativeQuery 方法。
不要使用 Hibernate Session delete 方法 此規則會標示 org.hibernate.Session delete 方法。 請改用 javax.persistence.EntityManager remove 方法。
不要使用 Hibernate SessionFactory 介面 此規則會標示是否使用了 org.hibernate.SessionFactory 介面。 請改用 javax.persistence.EntityManagerFactory 介面。
不要使用 Hibernate SessionFactory isClosed 方法 此規則會標示 org.hibernate.SessionFactory isClosed 方法。 請改用 javax.persistence.EntityManagerFactory isOpen 方法。
不要使用 Hibernate SessionFactory openSession 方法 此規則會標示 org.hibernate.SessionFactory openSession 方法。 請改用 javax.persistence.EntityManagerFactory createEntityManger 方法。
不要使用 Hibernate Session getNamedQuery 方法 此規則會標示 org.hibernate.Session getNamedQuery 方法。 請改用 javax.persistence.EntityManager createNamedQuery 方法。
不要使用 Hibernate Session getSessionFactory 方法 此規則會標示 org.hibernate.Session getSessionFactory 方法。 請改用 javax.persistence.EntityManager getEntityManagerFactory 方法。
不要使用 Hibernate Session 介面 此規則會標示 org.hibernate.Session 介面。 請改用 javax.persistence.EntityManager 介面。
不要使用 Hibernate Session load 方法 此規則會標示 org.hibernate.Session load 方法。 請改用 javax.persistence.EntityManager find 方法。
不要使用 Hibernate Session save 方法 此規則會標示 org.hibernate.Session save 方法。 請改用 javax.persistence.EntityManager persist 方法。
不要使用 Hibernate Session saveOrUpdate 方法 此規則會標示 org.hibernate.Session saveOrUpdate 方法。 請改用 javax.persistence.EntityManager merge 方法。
不要使用 Hibernate Session update 方法 此規則會標示 org.hibernate.Session update 方法。 請改用 javax.persistence.EntityManager merge 方法。
不要使用 Hibernate Transaction 介面 此規則會標示使用的 org.hibernate.Transaction 介面、org.hibernate.JDBCTransaction 類別及 org.hibernate.JTATransaction 類別。 將所使用的 Transaction 介面及 JDBCTransaction 類別,取代為 javax.persistence.EntityTransaction 介面。 將所使用的 JTATransaction 類別取代為 javax.transaction.UserTransaction 介面。
移轉作為查詢使用的 HQL FROM 子句 此規則會偵測並移轉以 FROM 子句為開頭的「Hibernate 查詢語言 (HQL)」。 在 JPA 中,查詢字串必須以 SELECT 子句為開頭。
移轉 HQL ORDER BY UPPER/LOWER 子句 此規則會偵測包含 ORDER BY UPPERORDER BY LOWER 子句的「Hibernate 查詢語言 (HQL)」字串,這些子句必須移轉才能與 JPA 搭配使用。