gpt4 book ai didi

eclipse - BlobUserType 类型的方法 nullSafeSet(PreparedStatement, Object, int, SessionImplementor) 必须重写或实现父类(super class)型方法

转载 作者:行者123 更新时间:2023-12-02 21:32:53 25 4
gpt4 key购买 nike

我正在尝试运行导入的开源代码,但运行后出现此错误:

The method nullSafeSet(PreparedStatement, Object, int, SessionImplementor) of type        
BlobUserType must override or implement a supertype method

这是我没有在上面放任何东西的方法,因为我真的不需要它,但我必须放弃它。

      @Override
protected void nullSafeSet(PreparedStatement ps, Object value , int index ,
SessionImplementor si) throws SQLException{}

这是类代码:

   package org.squashtest.csp.tm.internal.infrastructure.hibernate;

import java.io.IOException;
import java.io.InputStream;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;

import org.hibernate.HibernateException;
import org.springframework.jdbc.support.lob.LobCreator;
import org.springframework.jdbc.support.lob.LobHandler;
import org.springframework.orm.hibernate3.support.AbstractLobType;
import org.hibernate.engine.SessionImplementor;
public class BlobUserType extends AbstractLobType {

@Override
public int[] sqlTypes() {
return new int[] {Types.BLOB};
}

@Override
public Class<?> returnedClass() {
return InputStream.class;
}

@Override
protected Object nullSafeGetInternal(ResultSet rs, String[] names,
Object owner, LobHandler lobHandler) throws SQLException,
IOException, HibernateException {
return lobHandler.getBlobAsBinaryStream(rs, names[0]);

}

@Override
protected void nullSafeSetInternal(PreparedStatement ps, int index, Object
value, LobCreator lobCreator) throws SQLException,
IOException, HibernateException {


if (value != null) {
lobCreator.setBlobAsBinaryStream(ps, index, (InputStream) value,
-1);


}
else {
lobCreator.setBlobAsBytes(ps, index, null);
}


}




}

最佳答案

此方法是针对与您正在使用的版本不同的 Hibernate 版本编写的。如您所见,UserType 输入 Hibernate 3.5例如确实有以下内容:

void nullSafeSet(PreparedStatement st,
Object value,
int index) throws HibernateException, SQLException

Hibernate 4.1另一方面,确实有这样一个 UserType 类,其中方法签名与您的方法匹配:

void nullSafeSet(PreparedStatement st,
Object value,
int index,
SessionImplementor session)
throws HibernateException, SQLException

关于eclipse - BlobUserType 类型的方法 nullSafeSet(PreparedStatement, Object, int, SessionImplementor) 必须重写或实现父类(super class)型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11538899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com