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))代码>我只想查看我的数据库,但我没有显示sqlupdate
它可能与您的比较方式有关:if(status.equals(index))
if (status.equals(index))