realm / realm-java

Realm is a mobile database: a replacement for SQLite & ORMs
http://realm.io
Apache License 2.0
11.45k stars 1.75k forks source link

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

Open sanjoytech4 opened 4 months ago

sanjoytech4 commented 4 months ago

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

sync-by-unito[bot] commented 4 months ago

➤ PM Bot commented:

Jira ticket: RJAVA-1262

kneth commented 4 months ago

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()
sanjoytech4 commented 4 months ago

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

kneth commented 4 months ago

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

sanjoytech4 commented 4 months ago

@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? = ""
}
sanjoytech4 commented 4 months ago

@kneth Any update on this?