SpringBoot+SpringDataJPA项目中使用EntityManager执行复杂SQL
import javax.annotation.Resource; import javax.persistence.EntityManager; @Resource private EntityManager entityManager;
//1. 查询数据
public List<Object[]> getAllPersons() {
String sql = "SELECT * FROM table_name";
return entityManager.createNativeQuery(sql).getResultList();
}
// 2.带条件查询:entity_table是表名,status是表字段名
public List<EntityTable> findObjects(String status) {
String sql = "SELECT * FROM entity_table WHERE status = :status";
return entityManager.createNativeQuery(sql, EntityTable.class)
.setParameter("status", status)
.getResultList();
}
、
// 3.更新数据
public void updateTable(String param1, int param2) {
String sql = "UPDATE table_name SET field1= ? WHERE field_id= ?";
entityManager.createNativeQuery(sql)
.setParameter(1, param1)
.setParameter(2, param2)
.executeUpdate();
}