ORACLE触发器无效且未通过重新验证

javax.servlet.ServletException: Hibernate operation: Could not execute JDBC batch update; 

SQL [insert into T_FILE (FILE_NAME, FILE_CONTENT, REMARK, FILE_ID) values (?, ?, ?, ?)];....................................................


解决方案:

由于数据库表id设置了not null,所以我们要添加序列设置主键自动增长。


1、设置映射文件XXX.hbm.xml

ORACLE触发器无效且未通过重新验证_第1张图片


2、数据库操作

- -创建表

create table T_USER

(
  ID       INTEGER not null,
  USERNAME VARCHAR2(30) not null,
  PASSWORD VARCHAR2(20) not null

)


- -创建序列

create sequence SEQ_USER
minvalue 1
maxvalue 9999999999999999999999999999
start with 11
increment by 1
cache 10;


- -创建触发器

create or replace trigger tr_t_user
before insert on t_user
for each row
begin
select seq_user.nextval into :new.id from dual;
end;

注意:触发器建议手动输入,复制会出现全角空格(偷懒的我卡在这里,哈哈)


此为学习过程中遇到的问题,值得分享,希望能帮到你。

你可能感兴趣的:(Tomcat,报错)