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。
推薦閱讀:
- JPA如何使用nativequery多表關聯查詢返回自定義實體類
- springboot jpa 實現返回結果自定義查詢
- 基於spring data jpa @query返回map的踩坑記錄
- 在Jpa框架下拼接原生sql 並執行的操作
- spring-data-jpa使用自定義repository來實現原生sql