私が持っている:(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")
})
生成されたクエリ(はい、2つ)は次のとおりです。
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
でも、これ
Integer res = ((Integer) this.getJpaTemplate().execute( new JpaCallback() {
public Object doInJpa( EntityManager em ) throws PersistenceException {
Query q = em.createNamedQuery( "dalsiCisloFaktury" );
return q.getSingleResult();
}
}));
に入れnull
ますres
。
SQLを呼び出すと、次のように1000が返されます。
SELECT MAX(fakt.cislo) + 1 FROM poh_faktury AS fakt;
Hibernateが正しいスカラー値を返すようにするにはどうすればよいですか?