写了一个双主键表.
A[rid,pid]
Hibernate反向映射后会生成一个中间类
B{
  private int rid
  private int pid
  ................
}A{
 private B id;
 .................
}
现在我写了一个A的工具类,准备对A进行更新.
session.createQuery("update  A set id = ? where id = ?")传进来两个B,executeUpdate会抛异常org.hibernate.QueryException: Expected positional parameter count: 2, actual parameters: [com.yapai.pojo.RoleModuleId@5b10, com.yapai.pojo.RoleModuleId@5b0f] [update  RoleModule set id = ? where id = ?]
at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:319)
at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:275)
at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:90)
at com.yapai.dao.RoleModuleDAO.update(RoleModuleDAO.java:128)
at com.yapai.test.dao.RoleModuleTest.testUpdate(RoleModuleTest.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)求如何更新.