Vista combinada Visión Plana Vista de árbol
Discusiones [ Anterior | Siguiente ]
toggle
Mike Harris
Custom Insert SQL?
2 de junio de 2011 8:19
Respuesta

Mike Harris

Ranking: Junior Member

Mensajes: 91

Fecha de incorporación: 28 de marzo de 2011

Mensajes recientes

Hello,

I'd like to execute a "special" INSERT statement and I don't think I can use normal methods from my models... Is there a way to use a custom SQL for a statement like this :

INSERT IGNORE INTO my_table(id_, table2_id, amount)
SELECT 1, 2, 10
FROM my_table
WHERE NOT EXISTS (SELECT 1 FROM my_table WHERE amount >= 10 AND table2_id = 1)
LIMIT 1

Also, I need to know if a row was inserted or not.

Thank you!
Jonas Yuan
RE: Custom Insert SQL?
2 de junio de 2011 12:05
Respuesta

Jonas Yuan

Ranking: Liferay Master

Mensajes: 993

Fecha de incorporación: 26 de abril de 2007

Mensajes recientes

Hi Mike,

you can leverage dynamic query feature in your plugins.

Jonas Yuan
Mike Harris
RE: Custom Insert SQL?
8 de junio de 2011 13:41
Respuesta

Mike Harris

Ranking: Junior Member

Mensajes: 91

Fecha de incorporación: 28 de marzo de 2011

Mensajes recientes

I used something like that, but in a "Finder" :

String sql = "INSERT IGNORE INTO ... LIMIT 1";
Session session = null;

try {

session = openSession();

SQLQuery q = session.createSQLQuery(sql);

QueryPos qPos = QueryPos.getInstance(q);

qPos.add(param1);
qPos.add(param2);
etc..

nbAffectedRow = q.executeUpdate();

} catch (Exception e) {
throw new SystemException(e);
} finally {
closeSession(session);
}