B37*_*378 2 java mysql spring spring-data spring-data-jpa
我正在使用 Spring Data JPA 开发一个项目。我想向存储库添加一些自定义行为。
目前我正在尝试通过执行该方法来创建视图
存储库类如下。
public interface MyQueryRepository extends JpaRepository<MyQuery, Long>, MyQueryRepositoryCustom {
public MyQuery findById(long id);
public list executeMyQuery();
}
Run Code Online (Sandbox Code Playgroud)
这是定制:
public class MyQueryRepositoryImpl implements MyQueryRepositoryCustom {
@PersistenceContext
private EntityManager entityManager;
public List executeMyQuery() {
return entityManager.createQuery("CREATE VIEW result_set AS select record FROM my_data").getResultList();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误。
[ERROR] [http-bio-8080-exec-10] ErrorCounter - line 1:1: unexpected token: CREATE
antlr.NoViableAltException: unexpected token: CREATE
at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:198) [hibernate-core-5.1.1.Final.jar:5.1.1.Final]
Run Code Online (Sandbox Code Playgroud)
上面的代码适用于 SELECT 查询。
有没有其他方法可以使用实体管理器创建视图。提前致谢
要使用getResultList(),您必须进行Select而不是 CREATE?更新?或删除。
所以如果你想创建一个视图,那么你必须执行你的查询,而不是getResultList()创建一个视图,我建议使用CreateNativeQuery例如:
Query q = entityManager.createNativeQuery("CREATE VIEW result_set AS
select record FROM my_data");
q.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
否则,如果您想从查询中获取值,则必须将查询更改为 SELECT something FROM result_set
| 归档时间: |
|
| 查看次数: |
3846 次 |
| 最近记录: |