UB ORM: "safeDelete" does not work property on SQLite3
При запросе к сущностям с мягким удалениям, UB генерит запрос такого вида:
SELECT A01.ID FROM uba_otp A01
WHERE A01.mi_deleteDate='9999-12-31T00:00:00'
LIMIT 3 OFFSET 0
На SQLite3 он не работает, т.к. в поле A01.mi_deleteDate хранится значение без времени Вот так - работает:
SELECT A01.ID FROM uba_otp A01
WHERE A01.mi_deleteDate='9999-12-31'
LIMIT 3 OFFSET 0
Полный кусок лога:
20180703 15550819 " + ubMixinClasses.TubStorageMixin(01589280).MixinMethod
20180703 15550819 " debug uba_otp.select(TubStorageMixin)
20180703 15550819 " + ubApp.TubDataStore(1FB8DC60).Init
20180703 15550819 " + ubApp.TubApp(015632D0).DBExecute
20180703 15550819 " + ubApp.TubApp(015632D0).TubApp.InternalDBExecute
20180703 15550819 " debug P1: Int64 331630698921985
20180703 15550819 " debug P2: String(5) EMail
20180703 15550819 " debug P3: DateTime 2018-07-03T15:55:08
20180703 15550819 " debug P4: DateTime 2018-07-03T15:54:08
20180703 15550819 " debug P5: DateTime 9999-12-31T00:00:00
20180703 15550819 " SQL ubDBSQLite3ThreadSafe.TubSQLite3Statement(0FAB4210) SELECT A01.ID FROM uba_otp A01 WHERE A01.userID=? AND A01.otpKind=? AND A01.expiredDate>=? AND A01.mi_createDate>=? AND A01.mi_deleteDate=? LIMIT 3 OFFSET 0
20180703 15550819 " - 00.004.335
20180703 15550819 " - 00.005.441
20180703 15550819 " debug Query result for entity "uba_otp" into data name "": row count=0
20180703 15550819 " - 00.008.552
20180703 15550819 " - 00.010.575
Код для запроса:
const MAX_ALLOWED_OTP_PER_MIN = 2;
const otpsInLastMinute = Repository('uba_otp')
.attrs('ID')
.where('userID', '=', user.ID)
.where('otpKind', '=', 'EMail')
.where('expiredDate', '>=', new Date())
.where('mi_createDate', '>=', new Date(Date.now() - ms('1m')))
.limit(MAX_ALLOWED_OTP_PER_MIN + 1)
.selectAsObject();