Package-level declarations
Types
Base class for entities that support auto-hydration from the database.
Mixin interface that adds create, update, and delete convenience methods directly on an entity class, delegating to the entity's attached Stormify instance, else the instance of the enclosing transaction, else the default. T is the entity class itself, so create and update return it, as stormify.create(entity) does.
What a reference does when its foreign key points at a row that does not exist (a dangling reference, common in legacy databases without foreign key constraints). Set per instance through Stormify.danglingReferences.
Property delegate that triggers auto-hydration from the database on first access. Use with AutoTable entities: properties delegated to db will lazily load the entity's data when read or written for the first time.
Controls how a Kotlin property maps to a database column with advanced configuration options.
Marks a Kotlin class as mapping to a specific database table.
Compile-time metadata for a mapped entity class. Holds the class reference, a constructor lambda, property descriptors, and an optional table name override.
Functional interface for entity registration callbacks. Typically generated by the annotation processor (annproc) to register EntityMeta at startup.
Registry for enum classes, used by native targets where reflection is not available. On JVM, enum operations use reflection directly and this registry is not needed. On native, the annotation processor generates calls to register at startup.
Describes a single mapped field (property) of an entity, including its database column name, type, and role in CRUD operations.
Built-in naming policies for converting Kotlin property/class names to database column/table names.
Platform-specific big integer type. Maps to java.math.BigInteger on JVM and ionspin BigInteger on Native.
Maps to java.math.BigInteger on JVM.
Maps to ionspin com.ionspin.kotlin.bignum.integer.BigInteger on Native.
The platform part of StormifyEntity. On the JVM and Android it gives Java subclasses details(Class), the counterpart of the Kotlin by lazyDetails() delegate; elsewhere it is empty.
Gives Java entities the loading of by lazyDetails(): through the instance that read the entity, and for every row of the result it came with at once.
Empty on native targets, where entities are Kotlin and use by lazyDetails().
Marks a class whose instances the platform can serialize: java.io.Serializable on JVM and Android, an empty marker on native, which has no built-in object serialization.
Marks a class whose instances the platform can serialize: java.io.Serializable on JVM and Android, an empty marker on native, which has no built-in object serialization.
Marks a class whose instances the platform can serialize: java.io.Serializable on JVM and Android, an empty marker on native, which has no built-in object serialization.
Describes a single property of an entity class, including its type, getter/setter lambdas, and database mapping overrides. Used by EntityMeta and the annotation processor.
Stored-procedure parameter. The three modes (IN / OUT / INOUT) are distinct subclasses so each carries exactly the API it needs:
Stored-procedure parameter. The three modes (IN / OUT / INOUT) are distinct subclasses so each carries exactly the API it needs:
Stored-procedure parameter. The three modes (IN / OUT / INOUT) are distinct subclasses so each carries exactly the API it needs:
SQL dialect definitions for different database systems.
The main ORM controller. Entry point for all database operations.
Base class for entities that carry a reference to the Stormify instance that loaded them. This allows entity-level operations (e.g. AutoTable.hydrate) to use the correct Stormify instance without requiring it as an explicit parameter.
Entry point for Stormify from Java code. Provides CRUD operations, raw SQL queries, stored procedure calls, and transaction management against a javax.sql.DataSource.
Cleanup facade for Stormify's library-wide shared state on the desktop / JVM target. Not available on Native, Android, or iOS / macOS — those platforms cannot encounter the problem this class is designed to solve, so it is intentionally absent from their APIs.
Controls how Stormify reacts when a ResultSet column has no matching field on the target entity — typical when the database has extra columns the entity does not declare (audit columns, trigger-populated fields, legacy leftovers).
Properties
Whether this value is a platform-specific primitive type (e.g. java.math.BigDecimal on JVM).
Whether this value is a platform-specific primitive type (e.g. java.math.BigDecimal on JVM).
Whether this value is a platform-specific primitive type (e.g. java.math.BigDecimal on JVM).
Functions
Executes this SQL string as an UPDATE/INSERT/DELETE and returns the number of affected rows.
Property delegate that lazy-loads child (detail) records on first access.
Type-safe variant of lazyDetails that accepts an annotation-processor-generated reference path (e.g. Tables.AuditEntry_.modifiedBy) instead of a magic string. The compiler guarantees that the referenced property actually exists on the child type, so typos and renames are caught at build time instead of first query execution.
Creates a PagedQuery of T, like Stormify.pagedQuery, on the instance a call without one uses.
Kotlin helper for an IN parameter. Equivalent to Sp.In(value). Note: raw values passed to procedure(...) are auto-wrapped as IN, so explicit wrapping is only needed for clarity or when the caller wants to differentiate an intended IN from a potential Sp instance being passed.
Creates a Stormify instance from an Android SQLiteDatabase.
Creates a Stormify instance from a JDBC DataSource.
Executes block as a transaction on the default Stormify instance. Inside the block, any convenience call (top-level extensions, CRUDTable, lazy-loaders) runs on the transaction's connection. Nested calls become savepoints automatically — see Stormify.transaction.