org.hibernate.QueryException:Expected positional parameter count: 1

本文详细解析了在使用HQL语句时遇到的参数传递错误问题,包括如何正确设置参数值以及参数数量的重要性。通过示例代码演示了在HQL查询中正确使用参数的方法,旨在帮助开发者避免常见的查询错误。

org.hibernate.QueryException:Expected positional parameter count: 1  


org.hibernate.QueryException:Expected positional parameter count: 1, actual parameters: [] [from LhClient c where c.wnamw=?]

Query query=session.createQuery("from LhClient c where c.wnamw=?");
query.setString(0, wxy);

在hql语句中有一个占位符“?”,则在query.setParameter()处,一定要有一个相对用的位被传入,否则会出现上述异常



++
1\
String hql="from User where username=? and userpass=?"; 
query.setParameter(0,"乔丹",Hibernate.STRING);  
或者
query.setString(0, "乔丹");
2\
   String hql1="from User where username=:username and userpass=:userpass";  
query1.setParameter("username","乔丹",Hibernate.STRING); 

`org.junit.ComparisonFailure` 异常通常在使用 JUnit 的 `assertEquals` 方法时,预期值和实际值不匹配时抛出。在包含 `@InjectMocks` 注解和 Mockito 的 `doThrow` 方法的上下文中,可能是在验证某个方法的返回值或者状态时出现了预期值和实际值不一致的情况。以下是一些可能的解决方法: #### 检查 Mock 行为 确认 Mock 对象的行为是否按照预期设置。例如,使用 `Mockito` 的 `doReturn` 或 `when` 方法设置返回值时,确保返回值与预期一致。 ```java import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.doReturn; class SomeService { public long someMethod() { return 0; } } class MyClass { private SomeService someService; public MyClass(SomeService someService) { this.someService = someService; } public long callSomeService() { return someService.someMethod(); } } @ExtendWith(MockitoExtension.class) class MyClassTest { @Mock private SomeService someService; @InjectMocks private MyClass myClass; @Test void testCallSomeService() { long expected = 1187068932637327360L; doReturn(expected).when(someService).someMethod(); long actual = myClass.callSomeService(); assertEquals(expected, actual); } } ``` #### 检查业务逻辑 检查被测试类的业务逻辑,确保其返回值符合预期。可能是被测试类的实现出现了问题,导致返回了错误的结果。 #### 检查数据传递 确保在测试过程中传递的数据是正确的。有时候,数据传递错误会导致方法返回的结果与预期不一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值