0

1 人のユーザーに関連付けられたすべてのレコードを削除するにはどうすればよいですか。たとえば、所有者が現在ログインしているユーザーのデータベースから 5 つのレコードを削除したいです。これが私のコードです:

public void deleteOrders() {

    Authentication auth = SecurityContextHolder.getContext()
            .getAuthentication();
    String user = auth.getName(); // get logged in username
    getHibernateTemplate().delete(
            "FROM " + Orders.class.getName() + " WHERE username='" + user
                    + "'");
}

私はこのようなことを試みていますが、失敗し、先に進むことができません。それを正しく行う方法は?

4

2 に答える 2

3

HibernateTemplate.delete()削除するエンティティ インスタンスを引数として取ります。HQL クエリは必要ありません。

bulkUpdate()削除クエリを実行するために使用します。または、非推奨になった HibernateTemplate のことは忘れて、Hibernate API を直接使用してください。

于 2012-12-19T22:29:28.447 に答える
0

パッケージパスが含まれているため、おそらく機能しませんclass.getName()が、クラス名がテーブル名と同じ場合はgetSimpleName()機能する可能性があります。

"FROM " + Orders.class.getSimpleName() + " WHERE ..."

ただし、次のようなことをしたいと思います。

entityManager.createNativeQuery("delete from orders where ...").execute();
于 2012-12-19T22:25:02.053 に答える