小编Bal*_*ule的帖子

序列“testsequence”尚未在此会话中在 postgresql java 中定义

我使用java应用程序与谷歌果汁作为注入器以及jdbi作为数据库层。我需要使用java代码从数据库获取序列。

我在应用程序的数据库中有表,未使用该序列。但出于其他目的,我需要序列值作为当前、下一个和最后一个。

尽管以下查询在 pg-admin 中有效

select currval('testsequence'); 

select nextval('testsequence'); 

select last_value FROM testsequence;
Run Code Online (Sandbox Code Playgroud)

代码如下。

public long getCurrentSequenceFromDB()
{
    LOGGER.info("SequenceHelper :getCurrentSequenceFromDBSTART");
    try (Handle handle = jdbi.open())
    {
        SequenceDAO squenceDAO = handle.attach(SequenceDAO.class);
        long sequence = squenceDAO.getCurrentSequence();
        if (sequence != 0)
        {
            LOGGER.info("SequenceHelper :getCurrentSequenceFromDBEND");
            return sequence;
        }
        else
        {
            LOGGER.info("SequenceHelper :getCurrentSequenceFromDBsequence sequence is null");
            return 0;
        }

    }
    catch (Exception e)
    {
        LOGGER.error("Error in getting sequence from database", e);
        throw new SignageServiceException(ErrorCodes.UNEXPECTED_ERROR, "Error in getting sequence from database", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

在查询级别为:

@SqlQuery("select …
Run Code Online (Sandbox Code Playgroud)

java postgresql jdbi

3
推荐指数
1
解决办法
5799
查看次数

标签 统计

java ×1

jdbi ×1

postgresql ×1