[求教]Hibernate里面的sql-delete如何使用?

05-04-05 mopegery

我使用的是Hibernate3.0beta4.

我尝试了,在hbm文件中加入

<sql-insert>Insert into phone(id, phonenumber) values(?,?)</sql-insert>
<p>

但是如何调用呢?

另外,我按照refernece上说的想要执行以下语句:

session.delete("from phone where phonenumber like %123%");
<p>

但是报错:

org.hibernate.MappingException: Unknown entity: java.lang.String
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:489)
<p>

那么怎么使用session.delete()来批量删除呢?

SportsBaby1980
2005-04-05 23:32

你用的不正确

hibernate3的删除:

Query q = session.createQuery(sql);

q.executeUpdate();

executeUpdate

public int executeUpdate()

throws HibernateExceptionExecute the update or delete statement.

The semantics are compliant with the ejb3 Query.executeUpdate() method.

Returns:

The number of entities updated or deleted.

Throws:

HibernateException

讨论hibernate3.0的问题

欢迎大家来http://www.jsports.org

SportsBaby1980
2005-04-05 23:37

忘了说了:

这个session要用org.hibernate.Session

mopegery
2005-04-06 12:57

多谢回复!

但是,我这里还是出了点问题:

     Query query = session.createQuery(" delete from Phone ");
     query.executeUpate();
<p>

执行的时候仍然报错.

java.lang.NullPointerException

at org.hibernate.hql.antlr.HqlSqlBaseWalker.path(HqlSqlBaseWalker.java:2193)...

改成"from Phone"也不行.

能否给出一个例子?

另外,我想使用<sql-delete>来执行native SQL,但是写好了hbm文件之后,不知道如何使用java代码来调用,能否一并告知?