JPA如何使用entityManager執行SQL並指定返回類型

下面是代碼

Query query = entityManager.createNativeQuery(yourSql);
//指定返回類型
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(yourClass));
//獲取返回集合
List resultList = query.getResultList();

註:此方法不支持枚舉類的自動轉型,需要在entity中改一下枚舉類的set方法。

如下:

//此處傳入String類型
public void setCheckResult(String checkResult) {
     //調用枚舉類的valueOf方法
this.checkResult = CheckResultEnum.valueOf(checkResult);
    }

jpa 使用entitymanager查詢表並返回List<Map<Column,Value>>

entityManager通過Spring自動註入

var query = entityManager.createNativeQuery(sql)
import org.hibernate.SQLQuery
import org.hibernate.transform.Transformers
query.unwrap(classOf[SQLQuery]).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
query.getResultList

這裡返回的是List<Object> Object其實就是Map,Key為列名 Value為值

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: