java在Spring Repository JPA中使用对象作为参数进行自定义查询
我有一个大致如下的代码:
public interface User extends JpaRepository<User, Integer> {
@Modifying
@Query(value = "INSERT INTO USER (USER_ID,FIRST_NAME,LAST_NAME) VALUES(:user)", nativeQuery = true)
void saveUser(@Param("user") User user);
}
但我得到了以下例外:
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OraclePreparedStatement.setIntInternal(OraclePreparedStatement.java:5223) ~[ojdbc-12.1.0.1.jar:12.1.0.1.0]
at oracle.jdbc.driver.OraclePreparedStatement.setInt(OraclePreparedStatement.java:5210) ~[ojdbc-12.1.0.1.jar:12.1.0.1.0]
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setInt(OraclePreparedStatementWrapper.java:209) ~[ojdbc-12.1.0.1.jar:12.1.0.1.0]
at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$1.doBind(IntegerTypeDescriptor.java:46) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
我观察到大多数自定义查询都有简单数据类型的参数。可以使用对象吗
# 1 楼答案
这样做:
当调用此方法时,请执行以下操作: