Java Hibernate批处理更新从更新[0]返回意外的行计数;实际行数:0;预期:1

Java Hibernate批处理更新从更新[0]返回意外的行计数;实际行数:0;预期:1,java,hibernate,jpa,Java,Hibernate,Jpa,我在冬眠方面有困难 我有个例外 批更新从更新[0]返回了意外的行计数;实际行数:0;预期:1 我试图显示数据库中的日期,其中一列是char,在我的类中有一个Enum public enum Status { CADASTRADA('C', "Cadastrada"), APROVADA('A', "Aprovada"), LIBERADA('L', "Liberada"), BLOQUEADA('B', "Bloqueada"); public cha

我在冬眠方面有困难

我有个例外

批更新从更新[0]返回了意外的行计数;实际行数:0;预期:1

我试图显示数据库中的日期,其中一列是char,在我的类中有一个
Enum

public enum Status {

    CADASTRADA('C', "Cadastrada"),
    APROVADA('A', "Aprovada"),
    LIBERADA('L', "Liberada"),
    BLOQUEADA('B', "Bloqueada");

    public char index;
    public String descricao;

    private Status(char index, String descricao) {
        this.index = index;
        this.descricao = descricao;
    }

    public static Status valueOf(char index) {
        for (Status status : Status.values()) {
            if (status.equals(index)) {
                return status;
            }
        }
        return null;
    }

    public String getDescricao() {
        return this.descricao;
    }

    public char getIndex() {
        return this.index;
    }

}
`

我创建一个
TypeClass
来转换

`公共类FilialStatusType扩展了TypeHibernate{ 公共静态最终字符串TYPE=“filialStatusType”

@覆盖
公共对象nullSafeGet(结果集rs、字符串[]名称、SessionImplementor sessionImpl、对象obj)
抛出HibernateeException、SQLException{
字符串索引=rs.getString(名称[0]);
返回StringUtil.isStringNullOrEmpty(index)?null:substand.Status.valueOf(index.charAt(0));
}
@凌驾
public void nullSafeSet(PreparedStatement ps、对象值、int索引、SessionImplementor会话)
抛出HibernateeException、SQLException{
Status=(sub孝.Status)值;
if(NullUtil.isNull(状态)){
ps.setNull(索引,CharacterType.INSTANCE.sqlType());
}否则{
ps.setString(index,String.valueOf(status.index));
}
}
@凌驾
公共类returnedClass(){
返回.Status.class;
}
} `


有人能帮帮我吗?

有很多事情可能会导致这种情况:

  • 触发器/规则/plsql可能会拒绝或拒绝您的更改
  • 你没有权利
  • 其他用户已执行此操作
  • 某些数据库支持只读连接
还有很多


如果这种情况经常发生,则应使用@version字段。要了解实体。

可能与您的比较方式有关:

if (status.equals(index))

我认为您不能像这样比较
enum
char

它抛出这个异常的行或方法是什么?这些都是密码吗?你的数据库里有什么东西吗?似乎在您的数据库中找不到行。是的,我的数据库中有日期,例外是在
Type Class
中抛出哪个方法?哪一行?
nullSafeGet
返回StringUtil.isStringNullOrEmpty(索引)?null:index.Status.valueOf(index.charAt(0))我只想查看我的数据库,但我没有显示sql
update
它可能与您的比较方式有关:if(status.equals(index))
if (status.equals(index))