sql – 这个JPA COUNT选择查询有什么问题?
发布时间:2020-05-24 11:06:53 所属栏目:MsSql 来源:互联网
导读:在我的数据库中,我有一个表(默认值),当我从表生成一个实体时,我得到这两个类: @Entitypublic class Defaults implements Serializable { private static final long serialVersionUID = 1L; @EmbeddedId protected DefaultsPK DefaultsPK
|
在我的数据库中,我有一个表(默认值),当我从表生成一个实体时,我得到这两个类: @Entity
public class Defaults implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected DefaultsPK DefaultsPK;
@Column(name = "ERTEK")
private String ertek;
getter/setter...
}
@Embeddable
public class DefaultsPK implements Serializable {
@Basic(optional = false)
@Column(name = "VALUE_1")
private String value1;
@Basic(optional = false)
@Column(name = "TYPE")
private String type;
@Basic(optional = false)
@Column(name = "VALID_FROM")
@Temporal(TemporalType.TIMESTAMP)
private Date validFrom;
@Basic(optional = false)
@Column(name = "VALID_TO")
@Temporal(TemporalType.TIMESTAMP)
private Date validTo;
getter/setter...
}
这就是为什么因为主键包含值。 String sql = "SELECT COUNT(d) FROM Defaults d"; Query q = em.createQuery(sql); long count = (long)q.getSingleResult(); 但是我收到了这个错误: org.hibernate.exception.SQLGrammarException: could not execute query ... java.sql.SQLSyntaxErrorException: ORA-00907: The right expression is missing from the arithmetic expression 问题是什么?与其他实体的其他计数查询正在运行。 我正在使用hibernate。 解决方法使用count(d.ertek)或count(d.id)代替count(d)。当您的实体具有复合主键时,可能会发生这种情况。(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
