你好!
我有一些复杂的查询语句 或者 需要用到oracle数据库的特殊函数,jpql满足不了需要用SQL , ,现在jmix都是用jpql语句的,我怎么才能使用SQL语句进行CRUD?
可以用 EntityManager 或者 JdbcTemplate
,下面是EntityManager的例子:
@Component("product_Service")
public class ProductSerivce {
@PersistenceContext
private EntityManager entityManager;
public List<Product> loadAllProducts(){
List<Product> resultList = entityManager.createNativeQuery("select * from LEOT_PRODUCT", Product.class)
.getResultList();
return resultList;
}
}
如果查询总条数也是写count(*) 函数在sql里面吗?
使用entityManager.createNativeQuery不可以追加参数的吗?
执行的时候报错
但是控制台打印的SQL拿去数据库中执行是正常的
数据库执行如下
这个错误的意思是parameter没有设置上。Eclipselink 对 Native query 参数的支持如下:
所以,你应该用 fd_Code=#fdCode
的形式。
或者可以用 fd_Code=?1
然后用setParameter(1,"xxxx")
的方式定义参数。
你好! 使用原生SQL查询是没有问题了,还有使用原生的SQL的修改,删除,新增 使用entityManager如何使用?能否给个出修改,删除,新增的例子? 因为我问的增删改查的问题哈?
搜一下EntityManager的用法,这些是JPA通用知识,不是Jmix专有的。