我正在努力解决这个问题:
引起:org.postgresql.util.PSQLException:错误:FROM中的子查询 必须有一个别名Indice:例如,FROM(SELECT ...)[AS] foo。 位置:15
查询如下所示:
Query query = em.createQuery("select u from UserClass as u where u.id.id = :id")
我在这里找到的唯一棘手的事情是u.id.id,UserClass类正在使用en EmbeddedId:
@Entity
@Table(name = "TABLE_USER")
public class UserClass implements {
@EmbeddedId
private UserClassPK id;
...
}
这是UserClassPK类:
@Embeddable
public class UserClassPK {
@Column(name = "ID_UTILISATEUR")
private String id;
}
除此之外,我不知道为什么会出现这个错误。
编辑:添加了MyClassPK类。选择“User”作为示例的实体名称也是一个糟糕的选择,我将其更改为UserClass。
答案 0 :(得分:0)
刚刚找到解决方案!问题来自生成子查询的query.getSingleResult()
的解释。
我只需要在src / main / resources / spring-jpa.xml中更改JPA使用的方言:
<context:property-placeholder
location="classpath*:jpa-postgresql.properties"
ignore-unresolvable="true" />
使用jpa-postgresql.properties文件:
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
jpa.dialect=org.springframework.orm.jpa.vendor.HibernateJpaDialect
jpa.vendor.adapter=HibernateJpaVendorAdapter