使用namedparameterJDBCTemplate中的序列插入两个表

时间:2015-06-26 21:44:31

标签: java

如何在namedparameterJDBCTemplate中使用序列插入两个表?     数据库 - 量表     springjdbcnamedparametertemplate。

我的Dao看起来像这样

@Override
    public void insert(Message message) {
        String SQL = "INSERT into mssg (mssg_id, mssg_text, mssg_channel)"
                + " values (mssg_sequence.nextval,:mssg_text,:mssg_channel)";

        String SQLMessage_app = "INSERT into message_app(mssg_app_type,mssg_id)"
                + "values(:mssg_app_type,mssg_sequence.currval)";
        namedParameterJdbcTemplate.update(SQL,
                new BeanPropertySqlParameterSource(message));
        namedParameterJdbcTemplate.update(SQLMessage_app,
                new BeanPropertySqlParameterSource(message));
    }

oracle表就是这些

这是第一个表

create table mssg (
mssg_id number(10) NOT NULL,
mssg_text varchar2(25)NOT NULL,
mssg_channel varchar(25)NOT NULL,
constraint pk_mssg_id PRIMARY KEY(mssg_id)
);

Create sequence mssg_sequence
start with 1
increment by 1
minvalue 1
maxvalue 100000;

这是第二个表

CREATE TABLE MESSAGE_APP( 
mssg_app_type VARCHAR2(25),
mssg_id NUMBER(10),
CONSTRAINT fk_mssg
    FOREIGN KEY(mssg_id)
    REFERENCES mssg(mssg_id)
    ON DELETE CASCADE);
COMMIT;

我收到此错误:

  

org.springframework.jdbc.UncategorizedSQLException:   PreparedStatementCallback;未分类SQL的SQLException [INSERT   到   message_app(mssg_app_type,mssg_id)值](,mssg_sequence.currval?);   SQL状态[72000];错误代码[8002]; ORA-08002:序列   MSSG_SEQUENCE.CURRVAL尚未在此会话中定义;嵌套   异常是java.sql.SQLException:ORA-08002:sequence   MSSG_SEQUENCE.CURRVAL尚未在此会话中定义

任何人都可以通过使用序列???

帮助我将数据插入到两个表中

提前致谢:)

0 个答案:

没有答案