【发布时间】:2020-05-18 12:37:18
【问题描述】:
我正在尝试使用 postgres 在 Spring Boot 上构建应用程序。我正在使用 docker-compose。 我尝试访问数据时出错 这是例外
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: table is not mapped [SELECT t FROM table t WHERE t.code = :code]
app_1 | at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
app_1 | at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
app_1 | at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
app_1 | at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:718)
app_1 | at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:809)
app_1 | at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23)
方法表存储库
public Table getDataByCode(String tc) {
try {
TypedQuery<Table> q = em.createQuery("SELECT t FROM table t WHERE t.code = :code", Table.class);
q.setParameter("code", tc);
return q.getSingleResult();
} catch (Exception exception) {
exception.printStackTrace();
return null;
}
}
函数被调用 表 t = tableRepository.getDataByCode("CCC");
我的实体表
package hello.world.entity;
import javax.persistence.*;
@Entity
@Table(name="table")
public class Table {
@Id
@Column(name="code", length=3, nullable=false)
private String code;
@Column(name="name", length=256, nullable=false)
private String name;
public Table() {
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
【问题讨论】:
-
您好,您应该提供更多信息。比如Spring Boot的Controller/Service类,Entity类,也许是数据库表的结构。您使用 docker-compose 的目的是什么?您应该添加更多详细信息,因为您的请求过于笼统。
-
@A.Wolf 我编辑了帖子
-
应用程序是否连接到数据库?您是否尝试过
findAll()?请同时添加您的存储库的代码。 -
我建议您将实体名称从
table更改为另一个名称,因为它似乎是一个保留名称,可能很危险。
标签: java postgresql hibernate spring-boot docker