I have: (MySQL 5.1)
CREATE TABLE `poh_faktury` (
`cislo` int(10) unsigned NOT NULL PRIMARY KEY,
...
) ENGINE=MyISAM DEFAULT CHARSET=utf8$$
@Entity
@Table(name="poh_faktury")
@NamedQueries({
@NamedQuery(name="dalsiCisloFaktury", query="SELECT MAX(fakt.cislo) + 1 FROM Faktura AS fakt")
})
The generated queries (yes, two) are:
select MAX(faktura0_.cislo)+1 as col_0_0_ from poh_faktury faktura0_
select MAX(faktura0_.cislo)+1 as col_0_0_ from poh_faktury faktura0_ limit 2
But this
Integer res = ((Integer) this.getJpaTemplate().execute( new JpaCallback() {
public Object doInJpa( EntityManager em ) throws PersistenceException {
Query q = em.createNamedQuery( "dalsiCisloFaktury" );
return q.getSingleResult();
}
}));
puts null
into res
.
When I invoke SQL, it returns 1000 as it should:
SELECT MAX(fakt.cislo) + 1 FROM poh_faktury AS fakt;
How should I make Hibernate return correct scalar value?