JPA COMPTER avec clé primaire composite requête ne fonctionne pas
Dans ma db, j'ai une table (par Défaut), et quand je générer une entité de table, je reçois ces deux classes:
@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...
}
C'est pourquoi becaues la clé primaire est y compris les valeurs.
Je veux compter toutes les lignes dans la table, donc j'utilise ce code:
String sql = "SELECT COUNT(d) FROM Defaults d";
Query q = em.createQuery(sql);
long count = (long)q.getSingleResult();
Mais j'obtiens cette erreur:
org.hibernate.exception.SQLGrammarException: could not execute query
...
java.sql.SQLSyntaxErrorException: ORA-00907: The right expression is missing from the arithmetic expression
Quel est le problème? L'autre le comte de requêtes avec d'autres entités travaillent.
Je suis de l'utilisation d'hibernate.
Vous devez vous connecter pour publier un commentaire.
Utilisation
count(d.ertek)
oucount(d.id)
au lieu decount(d)
. Cela peut se produire lorsque vous avez les clés primaires composites à votre entité.SELECT COUNT(d.DefaultsPK.value1) FROM Defaults d