Pergunta

Estou trabalhando na porção de um aplicativo Rails para Jruby e HSQLDB. Meu objetivo é incorporar um banco de dados e o site em um único arquivo JAR para implantação nos sites dos clientes. Eu tenho o site funcionando muito bem com o frasco, com alguns problemas notáveis.

Quando faço o seguinte com um modelo muito mundano do ActiveRecord:

@total = SessionLog.count(:id)

Eu recebo a seguinte exceção:

ActiveRecord :: DeclarationInValid (Activerecord :: ActiveRecorderRor: não em função ou grupo agregado por cláusula: org.hsqldb.expression@7be117Eb na instrução [Select count (session_logs.id) como count_id de session_logs where (criou_at> = '2010-02-- 06 'e criou_at <=' 2010-03-09 'e session_type =' tunnel_client ') Ordem por id desc]:

Selecione Count (session_logs.id) como count_id de session_logs where (criou_at> = '2010-02-06' e criou_at <= '2010-03-09' e session_type = 'tunnel_client') Ordem por id des Desc)

Parece -me claro que a declaração de contagem está causando o problema no HSQLDB, mas não tenho certeza de qual é a solução para corrigir isso. SQLITE3 e MYSQL Processam esta instrução SQL sem problemas.

Estou aberto a usar um banco de dados diferente diferente do HSQLDB, mas ele precisa ser incorporado ao nosso aplicativo na JVM. Esse é o apelo do HSQLDB.

Foi útil?

Solução

Você provavelmente encontrou um bug no adaptador ActiveRecord - activerecord-jdbchsqldb-adapter Eu assumo.

Você pode tentar executar o SQL diretamente em alguma sessão SQL não rubi? Então talvez você possa ver onde está dando errado e enviar um bug ou (melhor), enviar um patch.

Outras dicas

Podes tentar Banco de dados H2, conecte -o Curti assim. A partir de Wikipedia:

O mecanismo de banco de dados é escrito por Thomas Mueller. Ele também desenvolveu o Java Database Engine SQL Hipersonic [1]. Em 2001, o SQL hipersônico foi interrompido e o grupo HSQLDB foi formado para continuar trabalhando no código SQL hipersônico. O nome H2 significa Hipersonic 2, no entanto, o H2 não compartilha nenhum código com o SQL ou HSQLDB hipersônico. H2 é construído do zero.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top