I have an issue with querying on Integer properties with datamapper.
Datamapping configuration
class Order
include DataMapper::Resource
storage_names[:default] = 'ORDER'
property :order_id, Integer, :field => 'ORDER_ID', :key => true
property :order_name, String, :field => 'ORDER_NAME'
property :order_number, Integer, :field => 'ORDER_NUMBER'
end
In the database I have this record:
Order: 1277 - "Order1277" - 7
If I want to fetch an order I can do things like:
Order.first
Order.last
Order.first(order_name: "Order1277")
It gives me an object I can use. But when I try following I get errors:
Order.first(order_id: 1277)
Order.first(order_number: 7)
The error I get:
TypeError: 1277 is not a symbol # data_objects/Command.java:261:in `execute_reader'
I am using:
- jRuby 9.2.20
- Datamapper 1.2.0
It seems like I can only query on String properties. I tried to cast the integer to a symbol, I don't get an error anymore but no record is found. I even tried to configure the id field as String.
Order.all(order_id: '1277'.to_sym)
I understand that downgrading my jRuby could help, but that is not an option