Activerecord with JDBC in JRuby

I have some code that works in "normal" RoR.

It doesn't work in JRuby with the MySql JDBC adapter.

The query is:
    @breakdowns = Client.find(:all,
      :select => breakdown_select,
      :conditions =>breakdown_conditions ,
      :joins => breakdown_joins,
      :group => breakdown_group,
      :order=> 'record_count desc')

Which shows up in the log as:

Client Load (0.000000) SELECT clients.client_status as
breakdown_id,count(clients.client_status)as record_count FROM clients
left join programmes on clients.programme_id = programmes.id WHERE
(clients.programme_id = 12 ) GROUP BY clients.client_status ORDER BY
record_count desc

This is fine...
But when I try to access the "breakdown_id" column from the query
(clients.client_status as breakdown_id) it fails with:
NoMethodError (undefined method `breakdown_id' for #<Client:
0xfd9b4d>):

eg.
    for breakdown in @breakdowns
      logger.info("breakdown_id= #{breakdown.breakdown_id})
    end

This has been working fine until I tried to deploy with JRuby.

Any ideas.. surely I can alias column names?

Cheers
Giorgio.

Uhmm...

Can you try do?:

for breakdown in @breakdowns
       logger.info("breakdown_id= #{breakdown.id})
end

I have read that ActiveRecord always name de the primary key
column with the name "id".

I have this table definition in a jruby program:

class Empresa < ActiveRecord::Base
  set_table_name "si_Empresas"
  set_primary_key "IdEmpresa"
  has_many :usuarios, :class_name => "Usuario", :foreign_key =>
"IdEmpresa"
  has_and_belongs_to_many :perfiles,
    :class_name => "Perfil",
    :join_table => "si_EmpresasPerfiles",
    :foreign_key => "IdEmpresa",
    :association_foreign_key => "IdPerfilEmpresa"
end

and then i use this with success:

Empresa emp = Empresa.find(2234)
..
puts "Empresa #{emp.id}"

giorgio wrote: