realm/realm-java

equalTo() is not working when we have two conditions on the same field

sanjoytech4 opened this issue · 6 comments

How frequently does the bug occur?

Always

Description

We have a type field. We need the list of data from DB where (type == "ABSENCE" or type == " PUBLIC_HOLIDAY"). But we are getting data of type == "ABSENCE" only

val query = realm.where(TimeOffEvents::class.java)
        val iterator = types.split(",").toTypedArray()
        query.equalTo("type", iterator[0]).or().equalTo("type", iterator[1])
        query.sort("startDate", Sort.ASCENDING).findAllAsync()

Stacktrace & log output

No response

Can you reproduce the bug?

Always

Reproduction Steps

No response

Version

10.17.0

What Atlas App Services are you using?

Local Database only

Are you using encryption?

No

Platform OS and version(s)

Android

Build environment

Android Studio version: Android Studio Jellyfish | 2023.3.1 Patch 1
Android Build Tools version: ...
Gradle version: 8.2.2

➤ PM Bot commented:

Jira ticket: RJAVA-1262

Just to get a better understanding - in the following code snippet, results will not contain the PUBLIC_HOLIDAY entries?

val query = realm.where(TimeOffEvents::class.java)
val iterator = types.split(",").toTypedArray()
val results: RealmResults<TimeOffEvent> =   query.equalTo("type", iterator[0]).or().equalTo("type", iterator[1]).sort("startDate", Sort.ASCENDING).findAll()

@kneth Yes, results do not contain the PUBLIC_HOLIDAY entries.

@sanjoytech4 Please provide more information e.g., the exact value of types and the TimeOffEvent class.

@kneth
Here is TimeOffEvents class & type Value could be ABSENCE, PUBLIC_HOLIDAY, NON_WORKING_DAY

open class TimeOffEvents : RealmObject() {
    var externalCode: String? = ""
    var title: String? = ""
    var startDate: Date? = null
    var endDate: Date? = null
    var startTime: String? = ""
    var endTime: String? = ""
    var duration: Double = 0.0
    var timeUnit: String? = ""
    var durationFormatted: String? = ""
    var crossMidnight: Boolean = false
    var type: String? = ""
}

@kneth Any update on this?