gpt4 book ai didi

java - 我的表在使用修改和查询注释时没有映射?

转载 作者:行者123 更新时间:2023-12-02 09:57:25 25 4
gpt4 key购买 nike

我正在使用@Modifying和@Query注释直接执行我的sql语句,但是我收到一个错误,告诉我我的表没有映射,所以我不知道我做错了什么,这是我的代码:

@Repository
public interface TypesContratDaoJPA extends CrudRepository<Type, Long> {

@Query("select type_id from declaration_type where declaration_id=:declaration")
List<Integer> getListTypes(@Param("declaration") int declaration);

@Modifying
@Query("insert into declaration_type values(:declaration,:type)")
void addTypeToContrat(@Param("declaration") int declaration, @Param("type") int type);

@Modifying
@Query("delete from declaration_type where declaration_id=:declaration and type_id=:type")
void deleteTypeFromContrat(@Param("declaration") int declaration, @Param("type") int type);

}

我收到此错误:

Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: declaration_type is not mapped [delete from declaration_type where declaration_id=:declaration and type_id=:type]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:133)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:164)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:670)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23)

...
...
...
...

任何帮助将不胜感激。

最佳答案

看起来您想要执行 native 查询而不是 JPQL 查询。

为了将查询标记为 native ,您应该添加 nativeQuery = true 作为 @Query 注释上的属性。例如,您的第一个查询应如下所示:

@Query("select type_id from declaration_type where declaration_id=:declaration", nativeQuery = true)
List<Integer> getListTypes(@Param("declaration") int declaration);

如果您不在查询注解中添加nativeQuery = true,则该查询将被视为 JPQL 查询。
因此,为了使您的第一个查询工作,您必须有一个名为 declaration_type 的类,该类用 @Entity 进行注释,并且具有名为 的字段declaration_idtype_id。您应该查看一些 JPQL 教程(或文档),以了解有关这些类型查询的更多信息。

关于java - 我的表在使用修改和查询注释时没有映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55892086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com