https://kotlinlang.org logo
#exposed
Title
# exposed
o

oshai

12/05/2017, 9:52 AM
@tapac - I am getting the following error
java.lang.IllegalStateException: can't find primary key of type Int or Long; map['com.outbrain.oen.services.oendblib.dao.ocas.OenCampaignStatusTable.ocas_id']='75191' (where map='{com.outbrain.oen.services.oendblib.dao.ocas.OenCampaignStatusTable.ocas_id=75191}')
t

tapac

12/05/2017, 9:53 AM
Could you provide sample where this is happen?
o

oshai

12/05/2017, 9:59 AM
my query is something like this:
Copy code
INSERT INTO ocas_campaign_status (ocas_advertiser_id, ocas_campaign_id, ocas_is_oen_approved, ocas_off_air_reasons, ocas_on_air) 
VALUES (74671871, 1001735852, 1, 'OffAirInAmplify', 0) 
ON DUPLICATE KEY UPDATE ocas_campaign_id=VALUES(ocas_campaign_id), ocas_advertiser_id=VALUES(ocas_advertiser_id), ocas_on_air=VALUES(ocas_on_air), ocas_off_air_reasons=VALUES(ocas_off_air_reasons), ocas_is_oen_approved=VALUES(ocas_is_oen_approved)
so I am not sending the primary key (ocas id)
but ocas_campaign_id is also unique
this is the table object:
Copy code
object OenCampaignStatusTable : Table(name = "ocas_campaign_status") {
  val id = integer("ocas_id").autoIncrement().primaryKey()
  val ocas_campaign_id = integer("ocas_campaign_id").uniqueIndex().default(0)
  val ocas_advertiser_id = integer("ocas_advertiser_id").default(0)
  val ocas_on_air = integer("ocas_on_air").default(0) //TODO check boolean
  val ocas_off_air_reasons = varchar(name = "ocas_off_air_reasons", length = 255).nullable()
  val ocas_is_oen_approved = integer(name = "ocas_is_oen_approved").default(0) //TODO check boolean
  val ocas_date = varchar(name = "ocas_date", length = 30).nullable()
@tapac I think I understand the problem
as I mentioned my query doesnt use ocas_id which is the primary key
so the result does not contain it I guess
so I cant get the id's back?
@tapac - am I right? it is ok for me, I can remove that part of the code because I don't need those id's
t

tapac

12/05/2017, 10:42 AM
I'm not sure that insert on dup... query returns autogenerated keys via jdbc. So if you don't really need it I advice not to use id in such case.
But I'll try to check what returns in generatedKeys field of ResultSet
o

oshai

12/05/2017, 10:43 AM
I checked the above query, it returns nothing
thanks!
👌 1
2 Views