J'utilise Spring HibernateTemplate et j'ai besoin d'insérer des centaines d'enregistrements dans une base de données mysql toutes les secondes.Insertions Mysql multivaleurs utilisant HibernateTemplate
Vous ne savez pas quelle est la manière la plus performante de le faire, mais j'essaie de voir comment les insertions multi-mysql utilisent hibernate.
String query = "insert into user(age, name, birth_date) values(24, 'Joe', '2010-05-19 14:33:14'), (25, 'Joe1', '2010-05-19 14:33:14')"
getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
return session.createSQLQuery(query).executeUpdate();
}
});
Mais je reçois cette erreur: « ne pouvait pas exécuter la requête de manipulation en vrac natif ». S'il vous plaît vérifier votre requête .....
Toute idée de je peux utiliser un insert mysql multi-valeur en utilisant Hibernate? ou ma requête est-elle incorrecte?
D'autres façons d'améliorer les performances? J'ai essayé la méthode saveOrUpdateAll(), et ce n'était pas assez bon!
Avez-vous trouvé une solution pour cela? –
Je suis sûr que votre code réel ne fait pas cela, mais utilise plutôt des instructions préparées, sinon vous allez souffler le cache de requête hors de l'eau ... et vous vous laissez ouvert à l'injection sql partout. cf Petites Tables Bobby. (http://xkcd.com/327/) – time4tea
+1 pour la référence Bobby Tables –