abstract class Molecule01[A] extends Molecule[A]
- Grouped
- Alphabetic
- By Inheritance
- Molecule01
- Molecule
- ShowDebug
- GetAsyncJson
- GetAsyncRaw
- GetAsyncList
- GetAsyncIterable
- GetAsyncArray
- GetJson
- GetRaw
- GetList
- GetIterable
- GetArray
- JsonBuilder
- CastHelpers
- CastHelpersAggr
- CastHelpersOptNested
- Helpers
- DateHandling
- RegexMatching
- MoleculeBase
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Type Members
-
trait
checkInsertModel extends AnyRef
Insert data is verified on instantiation of
insert
object in each arity moleculeInsert data is verified on instantiation of
insert
object in each arity molecule- Attributes
- protected
- Definition Classes
- Molecule
-
trait
debugInsert extends AnyRef
Debug call to
insert
on a molecule (without affecting the db).Debug call to
insert
on a molecule (without affecting the db).
Prints internal molecule transformation representations to output:
Model --> Generic statements --> Datomic statements- Definition Classes
- Molecule
-
trait
getInsertTx extends AnyRef
Get transaction statements of a call to
insert
on a molecule (without affecting the db).Get transaction statements of a call to
insert
on a molecule (without affecting the db).- returns
Transaction statements
- Definition Classes
- Molecule
-
trait
insert extends AnyRef
Insert one or more rows of data matching molecule.
Insert one or more rows of data matching molecule.
ReturnsFuture
with TxReport having info about the result of the insert transaction.
Data matching the types of the molecule can be inserted either as individual args or an Iterable (List, Set etc) of tuples:// Insert single row of data with individual args Person.name.age.insert("Ann", 28) // Insert multiple rows of data. Accepts Iterable[Tpl] Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) // Data was inserted Person.name.age.get.sorted === List( ("Ann", 28), ("Ben", 42), ("Liz", 37) )
Each insert apply method returns a TxReport with info about the result of the transaction.
Sinceinsert
is an object of each arity 1-22 Molecule implementation, we can make an "insert-molecule" at compile time that we can re-use for inserting data at runtime matching the molecule type:// At compiletime: // Make insert-molecule val insertPersonsWithAge = Person.name.age.insert // At runtime: // Apply individual args matching insert-molecule to insert single row insertPersonsWithAge("Ann", 28) // .. or apply Iterable of tuples matching insert-molecule to insert multiple rows insertPersonsWithAge( List( ("Ben", 42), ("Liz", 37) ) ) // Data was inserted Person.name.age.get.sorted === List( ("Ann", 28), ("Ben", 42), ("Liz", 37) )
The insert operation is synchronous and blocking. Use
insertAsync
for non-blocking asynchronous inserts.- Definition Classes
- Molecule
-
trait
insertAsync extends AnyRef
Asynchronously insert one or more rows of data matching molecule.
Asynchronously insert one or more rows of data matching molecule.
ReturnsFuture
with TxReport having info about the result of the insert transaction.
Data matching the types of the molecule can be inserted either as individual args or an Iterable (List, Set etc) of tuples:// Insert single row of data with individual args val singleInsertFuture: Future[TxReport] = Person.name.age.insertAsync("Ann", 28) // Insert multiple rows of data. Accepts Iterable[Tpl] val multipleInsertFuture: Future[TxReport] = Person.name.age insertAsync List( ("Ben", 42), ("Liz", 37) ) for { _ <- singleInsertFuture _ <- multipleInsertFuture result <- Person.name.age.getAsync } yield { // Both inserts applied result === List( ("Ann", 28), ("Ben", 42), ("Liz", 37) ) }
The insert operation is asynchronous and non-blocking. Internally calls Datomic's asynchronous API.
- Definition Classes
- Molecule
-
implicit
class
Regex extends AnyRef
- Definition Classes
- RegexMatching
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
_debugInsert(conn: Conn, dataRows: Iterable[Seq[Any]]): Unit
- Attributes
- protected
- Definition Classes
- ShowDebug
-
def
_getInsertTx(conn: Conn, dataRows: Iterable[Seq[Any]]): Seq[Seq[Statement]]
- Attributes
- protected
- Definition Classes
- Molecule
-
def
_insert(conn: Conn, model: Model, dataRows: Iterable[Seq[Any]]): TxReport
- Attributes
- protected
- Definition Classes
- Molecule
-
def
_insertAsync(conn: Conn, model: Model, dataRows: Iterable[Seq[Any]])(implicit ec: ExecutionContext): Future[TxReport]
- Attributes
- protected
- Definition Classes
- Molecule
-
val
_model: Model
Internal Model representation of molecule.
Internal Model representation of molecule.
Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:
Custom DSL molecule --> Model --> Query --> Datomic query string- Definition Classes
- Molecule01 → MoleculeBase
-
val
_nestedQuery: Option[Query]
Internal optional Query representation of nested molecule with added entity search for each level.
Internal optional Query representation of nested molecule with added entity search for each level.
Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:
Custom DSL molecule --> Model --> Query --> Datomic query string- Definition Classes
- Molecule01 → MoleculeBase
-
val
_query: Query
Internal Query representation of molecule.
Internal Query representation of molecule.
Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:
Custom DSL molecule --> Model --> Query --> Datomic query string- Definition Classes
- Molecule01 → MoleculeBase
-
val
_rawNestedQuery: Option[Query]
Internal un-optimized optional Query representation of nested molecule with added entity search for each level.
Internal un-optimized optional Query representation of nested molecule with added entity search for each level.
Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:
Custom DSL molecule --> Model --> Query --> Datomic query string- Definition Classes
- Molecule01 → MoleculeBase
-
val
_rawQuery: Query
Internal un-optimized Query representation molecule.
Internal un-optimized Query representation molecule.
Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:
Custom DSL molecule --> Model --> Query --> Datomic query string- Definition Classes
- Molecule01 → MoleculeBase
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
cast(value: Any): String
- Attributes
- protected
- Definition Classes
- Helpers
-
def
castAggrManyList[T](row: List[_], i: Int): List[Set[T]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListBigDecimal(row: List[_], i: Int): List[Set[BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListBigInt(row: List[_], i: Int): List[Set[BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListDistinct[T](row: List[_], i: Int): List[Set[T]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListDistinctBigDecimal(row: List[_], i: Int): List[Set[BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListDistinctBigInt(row: List[_], i: Int): List[Set[BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListDistinctFloat(row: List[_], i: Int): List[Set[Float]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListDistinctInt(row: List[_], i: Int): List[Set[Int]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListFloat(row: List[_], i: Int): List[Set[Float]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListInt(row: List[_], i: Int): List[Set[Int]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListRand[T](row: List[_], i: Int): List[Set[T]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListRandBigDecimal(row: List[_], i: Int): List[Set[BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListRandBigInt(row: List[_], i: Int): List[Set[BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListRandFloat(row: List[_], i: Int): List[Set[Float]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManyListRandInt(row: List[_], i: Int): List[Set[Int]]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManySingle[T](row: List[_], i: Int): Set[T]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManySingleBigDecimal(row: List[_], i: Int): Set[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManySingleBigInt(row: List[_], i: Int): Set[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManySingleFloat(row: List[_], i: Int): Set[Float]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrManySingleInt(row: List[_], i: Int): Set[Int]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneList[T](row: List[_], i: Int): List[T]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListBigDecimal(row: List[_], i: Int): List[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListBigInt(row: List[_], i: Int): List[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListDistinct[T](row: List[_], i: Int): List[T]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListDistinctBigDecimal(row: List[_], i: Int): List[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListDistinctBigInt(row: List[_], i: Int): List[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListDistinctFloat(row: List[_], i: Int): List[Float]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListDistinctInt(row: List[_], i: Int): List[Int]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListFloat(row: List[_], i: Int): List[Float]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListInt(row: List[_], i: Int): List[Int]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListRand[T](row: List[_], i: Int): List[T]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListRandBigDecimal(row: List[_], i: Int): List[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListRandBigInt(row: List[_], i: Int): List[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListRandFloat(row: List[_], i: Int): List[Float]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrOneListRandInt(row: List[_], i: Int): List[Int]
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrSingleSample[T](row: List[_], i: Int): T
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrSingleSampleBigDecimal(row: List[_], i: Int): BigDecimal
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrSingleSampleBigInt(row: List[_], i: Int): BigInt
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrSingleSampleFloat(row: List[_], i: Int): Float
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castAggrSingleSampleInt(row: List[_], i: Int): Int
- Attributes
- protected
- Definition Classes
- CastHelpersAggr
-
def
castMany[T](row: List[_], i: Int): Set[T]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castManyBigDecimal(row: List[_], i: Int): Set[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castManyBigInt(row: List[_], i: Int): Set[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castManyEnum(row: List[_], i: Int): Set[String]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castManyFloat(row: List[_], i: Int): Set[Float]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castManyInt(row: List[_], i: Int): Set[Int]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapBigDecimal(row: List[_], i: Int): Map[String, BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapBigInt(row: List[_], i: Int): Map[String, BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapBoolean(row: List[_], i: Int): Map[String, Boolean]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapDate(row: List[_], i: Int): Map[String, Date]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapDouble(row: List[_], i: Int): Map[String, Double]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapFloat(row: List[_], i: Int): Map[String, Float]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapInt(row: List[_], i: Int): Map[String, Int]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapLong(row: List[_], i: Int): Map[String, Long]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapString(row: List[_], i: Int): Map[String, String]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapURI(row: List[_], i: Int): Map[String, URI]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castMapUUID(row: List[_], i: Int): Map[String, UUID]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOne[T](row: List[_], i: Int): T
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOneBigDecimal(row: List[_], i: Int): BigDecimal
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOneBigInt(row: List[_], i: Int): BigInt
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOneFloat(row: List[_], i: Int): Float
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOneInt(row: List[_], i: Int): Int
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOneInt2(row: List[_], i: Int): Int
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMany[T](row: List[_], i: Int): Option[Set[T]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyApply[T](row: List[_], i: Int): Option[Set[T]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyApplyBigDecimal(row: List[_], i: Int): Option[Set[BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyApplyBigInt(row: List[_], i: Int): Option[Set[BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyApplyDouble(row: List[_], i: Int): Option[Set[Double]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyApplyFloat(row: List[_], i: Int): Option[Set[Float]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyApplyInt(row: List[_], i: Int): Option[Set[Int]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyApplyLong(row: List[_], i: Int): Option[Set[Long]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyBigDecimal(row: List[_], i: Int): Option[Set[BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyBigInt(row: List[_], i: Int): Option[Set[BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyDouble(row: List[_], i: Int): Option[Set[Double]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyEnum(row: List[_], i: Int): Option[Set[String]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyFloat(row: List[_], i: Int): Option[Set[Float]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyInt(row: List[_], i: Int): Option[Set[Int]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyLong(row: List[_], i: Int): Option[Set[Long]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptManyRefAttr(row: List[_], i: Int): Option[Set[Long]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyBigDecimal(row: List[_], i: Int): Option[Map[String, BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyBigInt(row: List[_], i: Int): Option[Map[String, BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyBoolean(row: List[_], i: Int): Option[Map[String, Boolean]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyDate(row: List[_], i: Int): Option[Map[String, Date]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyDouble(row: List[_], i: Int): Option[Map[String, Double]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyFloat(row: List[_], i: Int): Option[Map[String, Float]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyInt(row: List[_], i: Int): Option[Map[String, Int]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyLong(row: List[_], i: Int): Option[Map[String, Long]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyString(row: List[_], i: Int): Option[Map[String, String]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyURI(row: List[_], i: Int): Option[Map[String, URI]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapApplyUUID(row: List[_], i: Int): Option[Map[String, UUID]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapBigDecimal(row: List[_], i: Int): Option[Map[String, BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapBigInt(row: List[_], i: Int): Option[Map[String, BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapBoolean(row: List[_], i: Int): Option[Map[String, Boolean]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapDate(row: List[_], i: Int): Option[Map[String, Date]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapDouble(row: List[_], i: Int): Option[Map[String, Double]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapFloat(row: List[_], i: Int): Option[Map[String, Float]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapInt(row: List[_], i: Int): Option[Map[String, Int]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapLong(row: List[_], i: Int): Option[Map[String, Long]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapString(row: List[_], i: Int): Option[Map[String, String]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapURI(row: List[_], i: Int): Option[Map[String, URI]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptMapUUID(row: List[_], i: Int): Option[Map[String, UUID]]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptNestedMany[T](it: Iterator[_]): Set[T]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedManyBigDecimal(it: Iterator[_]): Set[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedManyBigInt(it: Iterator[_]): Set[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedManyEnum(it: Iterator[_]): Set[String]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedManyFloat(it: Iterator[_]): Set[Float]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedManyInt(it: Iterator[_]): Set[Int]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedManyRefAttr(it: Iterator[_]): Set[Long]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapBigDecimal(it: Iterator[_]): Map[String, BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapBigInt(it: Iterator[_]): Map[String, BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapBoolean(it: Iterator[_]): Map[String, Boolean]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapDate(it: Iterator[_]): Map[String, Date]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapDouble(it: Iterator[_]): Map[String, Double]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapFloat(it: Iterator[_]): Map[String, Float]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapInt(it: Iterator[_]): Map[String, Int]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapLong(it: Iterator[_]): Map[String, Long]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapString(it: Iterator[_]): Map[String, String]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapURI(it: Iterator[_]): Map[String, URI]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedMapUUID(it: Iterator[_]): Map[String, UUID]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOne[T](it: Iterator[_]): T
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOneBigDecimal(it: Iterator[_]): BigDecimal
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOneBigInt(it: Iterator[_]): BigInt
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOneEnum(it: Iterator[_]): String
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOneFloat(it: Iterator[_]): Float
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOneInt(it: Iterator[_]): Int
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOneInt2(it: Iterator[_]): Int
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOneRefAttr(it: Iterator[_]): Long
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMany[T](it: Iterator[_]): Option[Set[T]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptManyBigDecimal(it: Iterator[_]): Option[Set[BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptManyBigInt(it: Iterator[_]): Option[Set[BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptManyDouble(it: Iterator[_]): Option[Set[Double]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptManyEnum(it: Iterator[_]): Option[Set[String]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptManyFloat(it: Iterator[_]): Option[Set[Float]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptManyInt(it: Iterator[_]): Option[Set[Int]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptManyLong(it: Iterator[_]): Option[Set[Long]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptManyRefAttr(it: Iterator[_]): Option[Set[Long]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapBigDecimal(it: Iterator[_]): Option[Map[String, BigDecimal]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapBigInt(it: Iterator[_]): Option[Map[String, BigInt]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapBoolean(it: Iterator[_]): Option[Map[String, Boolean]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapDate(it: Iterator[_]): Option[Map[String, Date]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapDouble(it: Iterator[_]): Option[Map[String, Double]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapFloat(it: Iterator[_]): Option[Map[String, Float]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapInt(it: Iterator[_]): Option[Map[String, Int]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapLong(it: Iterator[_]): Option[Map[String, Long]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapString(it: Iterator[_]): Option[Map[String, String]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapURI(it: Iterator[_]): Option[Map[String, URI]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptMapUUID(it: Iterator[_]): Option[Map[String, UUID]]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOne[T](it: Iterator[_]): Option[T]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOneBigDecimal(it: Iterator[_]): Option[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOneBigInt(it: Iterator[_]): Option[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOneDouble(it: Iterator[_]): Option[Double]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOneEnum(it: Iterator[_]): Option[String]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOneFloat(it: Iterator[_]): Option[Float]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOneInt(it: Iterator[_]): Option[Int]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOneLong(it: Iterator[_]): Option[Long]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptNestedOptOneRefAttr(it: Iterator[_]): Option[Long]
- Attributes
- protected
- Definition Classes
- CastHelpersOptNested
-
def
castOptOne[T](row: List[_], i: Int): Option[T]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneApply[T](row: List[_], i: Int): Option[T]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneApplyBigDecimal(row: List[_], i: Int): Option[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneApplyBigInt(row: List[_], i: Int): Option[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneApplyDouble(row: List[_], i: Int): Option[Double]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneApplyFloat(row: List[_], i: Int): Option[Float]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneApplyInt(row: List[_], i: Int): Option[Int]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneApplyLong(row: List[_], i: Int): Option[Long]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneBigDecimal(row: List[_], i: Int): Option[BigDecimal]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneBigInt(row: List[_], i: Int): Option[BigInt]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneDouble(row: List[_], i: Int): Option[Double]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneEnum(row: List[_], i: Int): Option[String]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneFloat(row: List[_], i: Int): Option[Float]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneInt(row: List[_], i: Int): Option[Int]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneLong(row: List[_], i: Int): Option[Long]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castOptOneRefAttr(row: List[_], i: Int): Option[Long]
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
castRow(row: List[AnyRef]): A
- Attributes
- protected
- Definition Classes
- CastHelpers
-
def
clean(attr: String): String
- Definition Classes
- Helpers
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
date2datomicStr(date: Date, zoneOffset: ZoneOffset = localZoneOffset): String
- Definition Classes
- DateHandling
-
def
date2str(date: Date, zoneOffset: ZoneOffset = localZoneOffset): String
- Definition Classes
- DateHandling
-
def
daylight(ms: Long): Int
- Definition Classes
- DateHandling
-
def
debugGet(implicit conn: Conn): Unit
Debug call to
get
on a molecule (without affecting the db).Debug call to
get
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows). OBS: printing raw Date's (Clojure Instant) will miss the time-zone- conn
Implicit Conn value in scope
- Definition Classes
- ShowDebug
-
def
debugGetAsOf(date: Date)(implicit conn: Conn): Unit
Debug call to
getAsOf(date)
on a molecule (without affecting the db).Debug call to
getAsOf(date)
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).- conn
Implicit Conn value in scsope
- Definition Classes
- ShowDebug
-
def
debugGetAsOf(tx: TxReport)(implicit conn: Conn): Unit
Debug call to
getAsOf(tx)
on a molecule (without affecting the db).Debug call to
getAsOf(tx)
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).- Definition Classes
- ShowDebug
-
def
debugGetAsOf(t: Long)(implicit conn: Conn): Unit
Debug call to
getAsOf(t)
on a molecule (without affecting the db).Debug call to
getAsOf(t)
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).- conn
Implicit Conn value in scope
- Definition Classes
- ShowDebug
-
def
debugGetHistory(implicit conn: Conn): Unit
Debug call to
getHistory
on a molecule (without affecting the db).Debug call to
getHistory
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).- conn
Implicit Conn value in scope
- Definition Classes
- ShowDebug
-
def
debugGetSince(date: Date)(implicit conn: Conn): Unit
Debug call to
getSince(date)
on a molecule (without affecting the db).Debug call to
getSince(date)
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).- conn
Implicit Conn value in scope
- Definition Classes
- ShowDebug
-
def
debugGetSince(tx: TxReport)(implicit conn: Conn): Unit
Debug call to
getSince(tx)
on a molecule (without affecting the db).Debug call to
getSince(tx)
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).- Definition Classes
- ShowDebug
-
def
debugGetSince(t: Long)(implicit conn: Conn): Unit
Debug call to
getSince(t)
on a molecule (without affecting the db).Debug call to
getSince(t)
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).- conn
Implicit Conn value in scope
- Definition Classes
- ShowDebug
-
def
debugGetWith(txData: List[List[_]])(implicit conn: Conn): Unit
Debug call to
getWith(txData)
on a molecule (without affecting the db).Debug call to
getWith(txData)
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).
3. Transactions of applied transaction data.- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- Definition Classes
- ShowDebug
-
def
debugGetWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Unit
Debug call to
getWith(txMolecules)
on a molecule (without affecting the db).Debug call to
getWith(txMolecules)
on a molecule (without affecting the db).
Prints the following to output:
1. Internal molecule transformation representations:
Molecule DSL --> Model --> Query --> Datomic query
2. Data returned from get query (max 500 rows).
3. Transactions of applied transaction molecules.- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- Definition Classes
- ShowDebug
-
def
debugSave(implicit conn: Conn): Unit
Debug call to
save
on a molecule (without affecting the db). -
def
debugUpdate(implicit conn: Conn): Unit
Debug call to
update
on a molecule (without affecting the db). -
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
escStr(s: String): String
- Definition Classes
- Helpers
-
def
expandDateStr(dateStr: String): String
- Definition Classes
- DateHandling
-
final
def
f(a: Any): Any
- Attributes
- protected
- Definition Classes
- Helpers
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
get(n: Int)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule.Get
List
of n rows as tuples matching molecule.
Only n rows are type-casted.Person.name.age.get(1) === List( ("Ben", 42) )
Since retrieving a List is considered the default fetch format, the getter method is simply named
get
(and notgetList
).- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of types matching the attributes of the molecule
-
def
get(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule.Get
List
of all rows as tuples matching molecule.Person.name.age.get === List( ("Ben", 42), ("Liz", 37), )
Since retrieving a List is considered the default fetch format, the getter method is simply named
get
(and notgetList
).- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of types matching the attributes of the molecule
-
def
getArray(n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule.Get
Array
of n rows as tuples matching molecule.Person.name.age.getArray(1) === Array( ("Ben", 42) )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples. Setting n to -1 fetches all rows (same as callinggetArray
without any number of rows parameter).- n
Number of rows. If -1, all rows are fetched.
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of types matching the attributes of the molecule
- Definition Classes
- GetArray
- See also
Equivalent asynchronous getAsyncArray method.
-
def
getArray(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule.Get
Array
of all rows as tuples matching molecule.Person.name.age.getArray === Array( ("Ben", 42), ("Liz", 37) )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of types matching the attributes of the molecule
- Definition Classes
- GetArray
- See also
Equivalent asynchronous getAsyncArray method.
-
def
getArrayAsOf(date: Date, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule as of date.Get
Array
of n rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Get Array of all rows as of afterUpdate Person.name.age.getArrayAsOf(afterUpdate) === Array( ("Ben", 43), ("Liz", 37) ) // Get Array of n rows as of afterUpdate Person.name.age.getArrayAsOf(afterUpdate, 1) === Array( ("Ben", 43) )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArrayAsOf method.
-
def
getArrayAsOf(date: Date)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule as of date.Get
Array
of all rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Retract val tx3 = ben.retract val afterRetract = new java.util.Date // No data yet before insert Person.name.age.getArrayAsOf(beforeInsert) === Array() // Get Array of all rows as of afterInsert Person.name.age.getArrayAsOf(afterInsert) === Array( ("Ben", 42), ("Liz", 37) ) // Get Array of all rows as of afterUpdate Person.name.age.getArrayAsOf(afterUpdate) === Array( ("Ben", 43), // Ben now 43 ("Liz", 37) ) // Get Array of all rows as of afterRetract Person.name.age.getArrayAsOf(afterRetract) === Array( ("Liz", 37) // Ben gone )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
- date
java.util.Date
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArrayAsOf method.
-
def
getArrayAsOf(tx: TxReport, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule as of tx.Get
Array
of n rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids // Update (tx report 2) val tx2 = Person(ben).age(43).update // Get Array of all rows as of tx2 (after update) Person.name.age.getArrayAsOf(tx2) === Array( ("Ben", 43), ("Liz", 37) ) // Get Array of n rows as of tx2 (after update) Person.name.age.getArrayAsOf(tx2, 1) === Array( ("Ben", 43) )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArrayAsOf method.
-
def
getArrayAsOf(tx: TxReport)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule as of tx.Get
Array
of all rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids // Update (tx report 2) val tx2 = Person(ben).age(43).update // Retract (tx report 3) val tx3 = ben.retract // Get Array of all rows as of tx1 (after insert) Person.name.age.getArrayAsOf(tx1) === Array( ("Ben", 42), ("Liz", 37) ) // Get Array of all rows as of tx2 (after update) Person.name.age.getArrayAsOf(tx2) === Array( ("Ben", 43), // Ben now 43 ("Liz", 37) ) // Get Array of all rows as of tx3 (after retract) Person.name.age.getArrayAsOf(tx3) === Array( ("Liz", 37) // Ben gone )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArrayAsOf method.
-
def
getArrayAsOf(t: Long, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule as of transaction timet
.Get
Array
of n rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) eids // Update (t 1031) Person(ben).age(43).update // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted ) // Get Array of all rows as of transaction t 1031 (after update) Person.name.age.getArrayAsOf(1031) === Array( ("Ben", 43), ("Liz", 37) ) // Get Array of n rows as of transaction t 1031 (after update) Person.name.age.getArrayAsOf(1031, 1) === Array( ("Ben", 43) )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- t
Long Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArrayAsOf method.
-
def
getArrayAsOf(t: Long)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule as of transaction timet
.Get
Array
of all rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) eids // Update (t 1031) Person(ben).age(43).update // Retract (t 1032) ben.retract // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted (43, 1032, false) // Retract: 43 retracted ) // Get Array of data as of transaction t 1028 (after insert) Person.name.age.getArrayAsOf(1028) === Array( ("Ben", 42), ("Liz", 37) ) // Get Array of all rows as of transaction t 1031 (after update) Person.name.age.getArrayAsOf(1031) === Array( ("Ben", 43), ("Liz", 37) ) // Get Array of all rows as of transaction t 1032 (after retract) Person.name.age.getArrayAsOf(1032) === Array( ("Liz", 37) )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
- t
Transaction time t
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArrayAsOf method.
-
def
getArraySince(date: Date, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule since date.Get
Array
of n rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time/Date from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getArraySince(date1) === Array("Ben", "Cay") // Ben and Cay added since date1 - only n (1) rows returned Person.name.getArraySince(date1, 1) === Array("Ben")
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArraySince method.
-
def
getArraySince(date: Date)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule since date.Get
Array
of all rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time/Date from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getArraySince(date1) === Array("Ben", "Cay") // Cay added since date2 Person.name.getArraySince(date2) === Array("Cay") // Nothing added since date3 Person.name.getArraySince(date3) === Nil
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
- date
java.util.Date
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArraySince method.
-
def
getArraySince(tx: TxReport, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule since tx.Get
Array
of n rows as tuples matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getArraySince(tx1) === Array("Ben", "Cay") // Ben and Cay added since tx1 - only n (1) rows returned Person.name.getArraySince(tx1, 1) === Array("Ben")
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- tx
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArraySince method.
-
def
getArraySince(tx: TxReport)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule since tx.Get
Array
of all rows as tuples matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getArraySince(tx1) === Array("Ben", "Cay") // Cay added since tx2 Person.name.getArraySince(tx2) === Array("Cay") // Nothing added since tx3 Person.name.getArraySince(tx3) === Nil
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
- tx
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArraySince method.
-
def
getArraySince(t: Long, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule since transaction timet
.Get
Array
of n rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved by callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t 1028 Person.name.getArraySince(t1) === Array("Ben", "Cay") // Ben and Cay added since transaction time t 1028 - only n (1) rows returned Person.name.getArraySince(t1, 1) === Array("Ben")
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArraySince method.
-
def
getArraySince(t: Long)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule since transaction timet
.Get
Array
of all rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved by callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t 1028 Person.name.getArraySince(t1) === Array("Ben", "Cay") // Cay added since transaction time t 1030 Person.name.getArraySince(t2) === Array("Cay") // Nothing added since transaction time t 1032 Person.name.getArraySince(t3) === Nil
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
- t
Transaction time t
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncArraySince method.
-
def
getArrayWith(txData: List[_], n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule with applied raw transaction data.Get
Array
of n rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getArrayWith(newDataTx).size === 250 // Imagine future db - Let's just take 10 Person.name.getArrayWith(newDataTx, 10).size === 10
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- txData
Raw transaction data as java.util.List[Object]
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
with
Equivalent asynchronous getAsyncArrayWith method.
-
def
getArrayWith(txData: List[_])(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule with applied raw transaction data.Get
Array
of all rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getArrayWith(newDataTx).size === 250
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
with
Equivalent asynchronous getAsyncArrayWith method.
-
def
getArrayWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of n rows as tuples matching molecule with applied molecule transaction data.Get
Array
of n rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val List(ben, liz) = Person.name.likes.insert( ("Ben", "pasta"), ("Liz", "pizza") ).eids // Test multiple transactions Person.name.likes.getArrayWith( Person(ben).likes("sushi").getUpdateTx, Person(liz).likes("cake").getUpdateTx ) === Array( ("Ben", "sushi") ("Liz", "cake") ) // Same as above, but only n (1) rows returned: Person.name.likes.getArrayWith( 1 Person(ben).likes("sushi").getUpdateTx, Person(liz).likes("cake").getUpdateTx ) === Array( ("Ben", "sushi") )
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- n
Int Number of rows returned
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- Note
Note how the
n
parameter has to come before thetxMolecules
vararg.- See also
Manual on
with
Equivalent asynchronous getAsyncArrayWith method.
-
def
getArrayWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn, tplType: ClassTag[A]): Array[A]
Get
Array
of all rows as tuples matching molecule with applied molecule transaction data.Get
Array
of all rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val ben = Person.name("Ben").likes("pasta").save.eid // Base data Person.name.likes.getArrayWith( // apply imaginary transaction data Person(ben).likes("sushi").getUpdateTx ) === Array( // Effect: Ben would like sushi if tx was applied ("Ben", "sushi") ) // Current state is still the same Person.name.likes.get === Array( ("Ben", "pasta") )
Multiple transactions can be applied to test more complex what-if scenarios!
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetArray
- See also
Manual on
with
Equivalent asynchronous getAsyncArrayWith method.
-
def
getAsOf(date: Date, n: Int)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule as of date.Get
List
of n rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Get List of all rows as of afterUpdate Person.name.age.getAsOf(afterUpdate) === List( ("Ben", 43), ("Liz", 37) ) // Get List of n rows as of afterUpdate Person.name.age.getAsOf(afterUpdate, 1) === List( ("Ben", 43) )
- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncAsOf method.
-
def
getAsOf(date: Date)(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule as of date.Get
List
of all rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) val List(ben, liz) = tx1.eids val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Retract val tx3 = ben.retract val afterRetract = new java.util.Date // No data yet before insert Person.name.age.getAsOf(beforeInsert) === Nil // Get List of all rows as of afterInsert Person.name.age.getAsOf(afterInsert) === List( ("Ben", 42), ("Liz", 37)´ ) // Get List of all rows as of afterUpdate Person.name.age.getAsOf(afterUpdate) === List( ("Ben", 43), // Ben now 43 ("Liz", 37) ) // Get List of all rows as of afterRetract Person.name.age.getAsOf(afterRetract) === List( ("Liz", 37) // Ben gone )
- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncAsOf method.
-
def
getAsOf(tx: TxReport, n: Int)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule as of tx.Get
List
of n rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids // Update (tx report 2) val tx2 = Person(ben).age(43).update // Current data Person.name.age.get === List( ("Ben", 43), ("Liz", 37) ) // Get List of all rows as of tx2 (after update) Person.name.age.getAsOf(tx2) === List( ("Ben", 43), ("Liz", 37) ) // Get List of n rows as of tx2 (after update) Person.name.age.getAsOf(tx2, 1) === List( ("Ben", 43) )
- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncAsOf method.
-
def
getAsOf(tx: TxReport)(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule as of tx.Get
List
of all rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) val List(ben, liz) = tx1.eids // Update (tx report 2) val tx2 = Person(ben).age(43).update // Retract (tx report 3) val tx3 = ben.retract // Get List of all rows as of tx1 (after insert) Person.name.age.getAsOf(tx1) === List( ("Ben", 42), ("Liz", 37) ) // Get List of all rows as of tx2 (after update) Person.name.age.getAsOf(tx2) === List( ("Ben", 43), // Ben now 43 ("Liz", 37) ) // Get List of all rows as of tx3 (after retract) Person.name.age.getAsOf(tx3) === List( ("Liz", 37) // Ben gone )
- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncAsOf method.
-
def
getAsOf(t: Long, n: Int)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule as of transaction timet
.Get
List
of n rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) eids // Update (t 1031) Person(ben).age(43).update // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted ) // Get List of all all rows as of transaction t 1031 (after update) Person.name.age.getAsOf(1031) === List( ("Ben", 43), ("Liz", 37) ) // Get List of n rows as of transaction t 1031 (after update) Person.name.age.getAsOf(1031, 1) === List( ("Ben", 43) )
- t
Long Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncAsOf method.
-
def
getAsOf(t: Long)(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule as of transaction timet
.Get
List
of all rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) eids // Update (t 1031) Person(ben).age(43).update // Retract (t 1032) ben.retract // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted (43, 1032, false) // Retract: 43 retracted ) // Get List of all rows as of transaction t 1028 (after insert) Person.name.age.getAsOf(1028) === List( ("Liz", 37), ("Ben", 42) ) // Get List of all rows as of transaction t 1031 (after update) Person.name.age.getAsOf(1031) === List( ("Liz", 37), ("Ben", 43) ) // Get List of all rows as of transaction t 1032 (after retract) Person.name.age.getAsOf(1032) === List( ("Liz", 37) )
- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncAsOf method.
-
def
getAsync(n: Int)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule.Get
Future
withList
of n rows as tuples matching molecule.
For more info and code examples see equivalent synchronous get method.
Since retrieving a List is considered the default fetch format, the getter method is simply namedget
(and notgetList
).- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of types matching the attributes of the molecule
- Definition Classes
- GetAsyncList
-
def
getAsync(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule.Get
Future
withList
of all rows as tuples matching molecule.
For more info and code examples see equivalent synchronous get method.
Since retrieving a List is considered the default fetch format, the getter method is simply namedget
(and notgetList
).- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of types matching the attributes of the molecule
- Definition Classes
- GetAsyncList
-
def
getAsyncArray(n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule.Get
Future
withArray
of n rows as tuples matching molecule.
For more info and code examples see equivalent synchronous getArray method.- n
Number of rows
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Future[Array[Tpl]]
where Tpl is a tuple of types matching the attributes of the molecule
- Definition Classes
- GetAsyncArray
-
def
getAsyncArray(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule.Get
Future
withArray
of all rows as tuples matching molecule.
For more info and code examples see equivalent synchronous getArray method.- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Future[Array[Tpl]]
where Tpl is a tuple of types matching the attributes of the molecule
- Definition Classes
- GetAsyncArray
-
def
getAsyncArrayAsOf(date: Date, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule as of date.Get
Future
withArray
of n rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getArrayAsOf method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArrayAsOf(date: Date)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule as of date.Get
Future
withArray
of all rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getArrayAsOf method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- date
java.util.Date
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArrayAsOf(tx: TxReport, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule as of tx.Get
Future
withArray
of n rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getArrayAsOf method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArrayAsOf(tx: TxReport)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule as of tx.Get
Future
withArray
of all rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getArrayAsOf method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArrayAsOf(t: Long, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule as of transaction timet
.Get
Future
withArray
of n rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
For more info and code examples see equivalent synchronous getArrayAsOf method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- t
Long Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArrayAsOf(t: Long)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule as of transaction timet
.Get
Future
withArray
of all rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
For more info and code examples see equivalent synchronous getArrayAsOf method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- t
Transaction time t
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArraySince(date: Date, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule since date.Get
Future
withArray
of n rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getArraySince method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArraySince(date: Date)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule since date.Get
Future
withArray
of all rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getArraySince method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- date
java.util.Date
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArraySince(tx: TxReport, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule since tx.Get
Future
withArray
of n rows as tuples matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getArraySince method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- tx
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArraySince(tx: TxReport)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule since tx.Get
Future
withArray
of all rows as tuples matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getArraySince method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- tx
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArraySince(t: Long, n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule since transaction timet
.Get
Future
withArray
of n rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved by callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction).
For more info and code examples see equivalent synchronous getArraySince method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArraySince(t: Long)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule since transaction timet
.Get
Future
withArray
of all rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved by callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction).
For more info and code examples see equivalent synchronous getArraySince method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- t
Transaction time t
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
asof
/since
-
def
getAsyncArrayWith(txData: List[_], n: Int)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule with applied raw transaction data.Get
Future
withArray
of n rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getArrayWith method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- txData
Raw transaction data as java.util.List[Object]
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
with
-
def
getAsyncArrayWith(txData: List[_])(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule with applied raw transaction data.Get
Future
withArray
of all rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getArrayWith method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
with
-
def
getAsyncArrayWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of n rows as tuples matching molecule with applied molecule transaction data.Get
Future
withArray
of n rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getArrayWith method.
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.
The Array is only populated with n rows of type-casted tuples.- n
Int Number of rows returned
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- Note
Note how the
n
parameter has to come before thetxMolecules
vararg.- See also
Manual on
with
-
def
getAsyncArrayWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn, tplType: ClassTag[A]): Future[Array[A]]
Get
Future
withArray
of all rows as tuples matching molecule with applied molecule transaction data.Get
Future
withArray
of all rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getArrayWith method.
Multiple transactions can be applied to test more complex what-if scenarios!
Getting a pre-allocated Array populated with typed data is the fastest way to query Datomic with Molecule. Looping the Array in a while loop with a mutable index pointer will also be the fastest way to traverse the data set.- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- tplType
Implicit
ClassTag[Tpl]
to capture Tuple type for Array- returns
Array[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncArray
- See also
Manual on
with
-
def
getAsyncAsOf(date: Date, n: Int)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule as of date.Get
Future
withList
of n rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getAsOf method.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncAsOf(date: Date)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule as of date.Get
Future
withList
of all rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getAsOf method.- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncAsOf(tx: TxReport, n: Int)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule as of tx.Get
Future
withList
of n rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getAsOf method.- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncAsOf(tx: TxReport)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule as of tx.Get
Future
withList
of all rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getAsOf method.- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncAsOf(t: Long, n: Int)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule as of transaction timet
.Get
Future
withList
of n rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
For more info and code examples see equivalent synchronous getAsOf method.- t
Long Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncAsOf(t: Long)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule as of transaction timet
.Get
Future
withList
of all rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
For more info and code examples see equivalent synchronous getAsOf method.- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncHistory(implicit conn: Conn): Future[List[A]]
Get
Future
with history of operations asList
on an attribute in the db.Get
Future
with history of operations asList
on an attribute in the db.
For more info and code examples see equivalent synchronous getHistory method.- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
manual for more info on generic attributes.
-
def
getAsyncIterable(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching the molecule.Get
Future
withIterable
of all rows as tuples matching the molecule.
Rows are lazily type-casted on each call to iterator.next().
For more info and code examples see equivalent synchronous getIterable method.- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is a tuple of types matching the attributes of the molecule
- Definition Classes
- GetAsyncIterable
-
def
getAsyncIterableAsOf(date: Date)(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching molecule as of date.Get
Future
withIterable
of all rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getIterableAsOf method.- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetAsyncIterable
- See also
Manual on
asof
/since
-
def
getAsyncIterableAsOf(tx: TxReport)(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching molecule as of tx.Get
Future
withIterable
of all rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getIterableAsOf method.- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetAsyncIterable
- See also
Manual on
asof
/since
-
def
getAsyncIterableAsOf(t: Long)(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching molecule as of transaction timet
.Get
Future
withIterable
of all rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
CallgetIterableAsOf
for large result sets to maximize runtime performance. Data is lazily type-casted on each call tonext
on the iterator.
For more info and code examples see equivalent synchronous getIterableAsOf method.- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetAsyncIterable
- See also
Manual on
asof
/since
-
def
getAsyncIterableSince(date: Date)(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching molecule since date.Get
Future
withIterable
of all rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getIterableSince method.- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetAsyncIterable
- See also
Manual on
asof
/since
-
def
getAsyncIterableSince(tx: TxReport)(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching molecule since tx.Get
Future
withIterable
of all rows as tuples matching molecule since tx.
Datomic's internalsince
method can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getIterableSince method.- tx
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetAsyncIterable
- See also
Manual on
asof
/since
-
def
getAsyncIterableSince(t: Long)(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching molecule since transaction timet
.Get
Future
withIterable
of all rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
CallgetIterableSince
for large result sets to maximize runtime performance. Data is lazily type-casted on each call tonext
on the iterator.
For more info and code examples see equivalent synchronous getIterableSince method.- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetAsyncIterable
- See also
Manual on
asof
/since
-
def
getAsyncIterableWith(txData: List[_])(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching molecule with applied raw transaction data.Get
Future
withIterable
of all rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db. *
* For more info and code examples see equivalent synchronous * getIterableWith method.- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- returns
Iterable of molecule data
- Definition Classes
- GetAsyncIterable
- See also
Manual on
with
-
def
getAsyncIterableWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[Iterable[A]]
Get
Future
withIterable
of all rows as tuples matching molecule with applied molecule transaction data.Get
Future
withIterable
of all rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getIterableWith method.
Multiple transactions can be applied to test more complex what-if scenarios!- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
Iterable of molecule data
- Definition Classes
- GetAsyncIterable
- See also
Manual on
with
-
def
getAsyncJson(n: Int)(implicit conn: Conn): Future[String]
Get
Future
with json data for n rows matching molecule.Get
Future
with json data for n rows matching molecule.
Namespace.Attribute is used as json fields. Values are quoted when necessary. Nested data becomes json objects etc.
For more info and code examples see equivalent synchronous getJson method.- n
Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
-
def
getAsyncJson(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule.Get
Future
with json data for all rows matching molecule.
Namespace.Attribute is used as json fields. Values are quoted when necessary. Nested data becomes json objects etc.
For more info and code examples see equivalent synchronous getJson method.- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
-
def
getAsyncJsonAsOf(date: Date, n: Int)(implicit conn: Conn): Future[String]
Get
Future
with json data for n rows matching molecule as of tx.Get
Future
with json data for n rows matching molecule as of tx.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getJsonAsOf method.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonAsOf(date: Date)(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule as of date.Get
Future
with json data for all rows matching molecule as of date.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getJsonAsOf method.- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonAsOf(tx: TxReport, n: Int)(implicit conn: Conn): Future[String]
Get
Future
with json data for n rows matching molecule as of tx.Get
Future
with json data for n rows matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getJsonAsOf method.- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonAsOf(tx: TxReport)(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule as of tx.Get
Future
with json data for all rows matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getJsonAsOf method.- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonAsOf(t: Long, n: Int)(implicit conn: Conn): Future[String]
Get
Future
with json data for n rows matching molecule as of transaction timet
.Get
Future
with json data for n rows matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
For more info and code examples see equivalent synchronous getJsonAsOf method.- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonAsOf(t: Long)(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule as of transaction timet
.Get
Future
with json data for all rows matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
For more info and code examples see equivalent synchronous getJsonAsOf method.- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonSince(date: Date, n: Int)(implicit conn: Conn): Future[String]
Get
Future
with json data for n rows matching molecule since date.Get
Future
with json data for n rows matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getJsonSince method.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonSince(date: Date)(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule since date.Get
Future
with json data for all rows matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getJsonSince method.- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonSince(tx: TxReport, n: Int)(implicit conn: Conn): Future[String]
Get
Future
with json data for n rows matching molecule since tx.Get
Future
with json data for n rows matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getJsonSince method.- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonSince(tx: TxReport)(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule since tx.Get
Future
with json data for all rows matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getJsonSince method.- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonSince(t: Long, n: Int)(implicit conn: Conn): Future[String]
Get
Future
with json data for n rows matching molecule since transaction timet
.Get
Future
with json data for n rows matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
For more info and code examples see equivalent synchronous getJsonSince method.- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonSince(t: Long)(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule since transaction timet
.Get
Future
with json data for all rows matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
For more info and code examples see equivalent synchronous getJsonSince method.- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
asof
/since
-
def
getAsyncJsonWith(txData: List[_], n: Int)(implicit conn: Conn): Future[String]
Get
Future
with json data for n rows matching molecule with applied raw transaction data.Get
Future
with json data for n rows matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getJsonWith method.- txData
Raw transaction data as java.util.List[Object]
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
with
-
def
getAsyncJsonWith(txData: List[_])(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule with applied raw transaction data.Get
Future
with json data for all rows matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getJsonWith method.- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
with
-
def
getAsyncJsonWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule with applied molecule transaction data.Get
Future
with json data for all rows matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getJsonWith method.
Multiple transactions can be applied to test more complex what-if scenarios!- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
with
-
def
getAsyncJsonWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[String]
Get
Future
with json data for all rows matching molecule with applied molecule transaction data.Get
Future
with json data for all rows matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getJsonWith method.
Multiple transactions can be applied to test more complex what-if scenarios!- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetAsyncJson
- See also
Manual on
with
-
def
getAsyncRaw(n: Int)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule.Get
Future
withjava.util.Collection
of n untyped rows matching molecule.Person.name.age.getRaw(1).toString === """[["Ben" 42]]"""
For more info and code examples see equivalent synchronous getRaw method.- n
Number of rows
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
-
def
getAsyncRaw(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule.Get
Future
withjava.util.Collection
of all untyped rows matching molecule.Person.name.age.getRaw.toString === """`[["Ben" 42], ["Liz" 37]]"""
For more info and code examples see equivalent synchronous getRaw method.- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
-
def
getAsyncRawAsOf(date: Date, n: Int)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule as of date.Get
Future
withjava.util.Collection
of n untyped rows matching molecule as of date.
Call getRawAsOf when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getRawAsOf method.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawAsOf(date: Date)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule as of date.Get
Future
withjava.util.Collection
of all untyped rows matching molecule as of date.
Call getRawAsOf when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Get data at a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getRawAsOf method.- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawAsOf(tx: TxReport, n: Int)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule as of tx.Get
Future
withjava.util.Collection
of n untyped rows matching molecule as of tx.
CallgetRawAsOf
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getRawAsOf method.- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawAsOf(tx: TxReport)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule as of tx.Get
Future
withjava.util.Collection
of all untyped rows matching molecule as of tx.Call
getRawAsOf
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getRawAsOf method.- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawAsOf(t: Long, n: Int)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule as of transaction timet
.Get
Future
withjava.util.Collection
of n untyped rows matching molecule as of transaction timet
.
CallgetRawAsOf
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
For more info and code examples see equivalent synchronous getRawAsOf method.- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawAsOf(t: Long)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule as of transaction timet
.Get
Future
withjava.util.Collection
of all untyped rows matching molecule as of transaction timet
.
CallgetRawAsOf
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).
For more info and code examples see equivalent synchronous getRawAsOf method.- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawSince(date: Date, n: Int)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule since date.Get
Future
withjava.util.Collection
of n untyped rows matching molecule since date.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getRawSince method.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawSince(date: Date)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule since date.Get
Future
withjava.util.Collection
of all untyped rows matching molecule since date.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getRawSince method.- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawSince(tx: TxReport, n: Int)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule since tx.Get
Future
withjava.util.Collection
of n untyped rows matching molecule since tx.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Datomic's internalsince
method can take a transaction entity id as argument to retrieve a database value since that transaction (excluding).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getRawSince method.- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawSince(tx: TxReport)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule since tx.Get
Future
withjava.util.Collection
of all untyped rows matching molecule since tx.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Datomic's internalsince
method can take a transaction entity id as argument to retrieve a database value since that transaction (excluding).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getRawSince method.- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawSince(t: Long, n: Int)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule since transaction timet
.Get
Future
withjava.util.Collection
of n untyped rows matching molecule since transaction timet
.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction).
For more info and code examples see equivalent synchronous getRawSince method.- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawSince(t: Long)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule since transaction timet
.Get
Future
withjava.util.Collection
of all untyped rows matching molecule since transaction timet
.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction).
For more info and code examples see equivalent synchronous getRawSince method.- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
asof
/since
-
def
getAsyncRawWith(txData: List[_], n: Int)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule with applied raw transaction data.Get
Future
withjava.util.Collection
of n untyped rows matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getRawWith method.- txData
Raw transaction data as java.util.List[Object]
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
with
-
def
getAsyncRawWith(txData: List[_])(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule with applied raw transaction data.Get
Future
withjava.util.Collection
of all untyped rows matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getRawWith method.- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
with
-
def
getAsyncRawWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of n untyped rows matching molecule with applied molecule transaction data.Get
Future
withjava.util.Collection
of n untyped rows matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getRawWith method.
Multiple transactions can be applied to test more complex what-if scenarios!- n
Int Number of rows returned
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- Note
Note how the
n
parameter has to come before thetxMolecules
vararg.- See also
Manual on
with
-
def
getAsyncRawWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[Collection[List[AnyRef]]]
Get
Future
withjava.util.Collection
of all untyped rows matching molecule with applied molecule transaction data.Get
Future
withjava.util.Collection
of all untyped rows matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getRawWith method.
Multiple transactions can be applied to test more complex what-if scenarios!- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetAsyncRaw
- See also
Manual on
with
-
def
getAsyncSince(date: Date, n: Int)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule since date.Get
Future
withList
of n rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getSince method.- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncSince(date: Date)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule since date.Get
Future
withList
of all rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).
For more info and code examples see equivalent synchronous getSince method.- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncSince(tx: TxReport, n: Int)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule since tx.Get
Future
withList
of n rows as tuples matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getSince method.- tx
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncSince(tx: TxReport)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule since tx.Get
Future
withList
of all rows as tuples matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.
For more info and code examples see equivalent synchronous getSince method.- tx
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncSince(t: Long, n: Int)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule since transaction timet
.Get
Future
withList
of n rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
For more info and code examples see equivalent synchronous getSince method.- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncSince(t: Long)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule since transaction timet
.Get
Future
withList
of all rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
For more info and code examples see equivalent synchronous getSince method.- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
asof
/since
-
def
getAsyncWith(txData: List[_], n: Int)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule with applied raw transaction data.Get
Future
withList
of n rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getWith method.- txData
Raw transaction data as java.util.List[Object]
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
with
-
def
getAsyncWith(txData: List[_])(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule with applied raw transaction data.Get
Future
withList
of all rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getWith method.- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
with
-
def
getAsyncWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of n rows as tuples matching molecule with applied molecule transaction data.Get
Future
withList
of n rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getWith method.- n
Int Number of rows returned
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- Note
Note how the
n
parameter has to come before thetxMolecules
vararg.- See also
Manual on
with
-
def
getAsyncWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[List[A]]
Get
Future
withList
of all rows as tuples matching molecule with applied molecule transaction data.Get
Future
withList
of all rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db.
For more info and code examples see equivalent synchronous getWith method. Multiple transactions can be applied to test more complex what-if scenarios!- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetAsyncList
- See also
Manual on
with
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getHistory(implicit conn: Conn): List[A]
Get history of operations as
List
on an attribute in the db.Get history of operations as
List
on an attribute in the db.
Generic datom attributes that can be called whengetHistory
is called:
e
- Entity id
a
- Attribute name
v
- Attribute value
ns
- Namespace name
tx
- TxReport
t
- Transaction time t
txInstant
- Transaction time as java.util.Date
op
- Operation: true (add) or false (retract)
Example:// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) eids // Update (t 1031) Person(ben).age(43).update // Retract (t 1032) ben.retract // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted (43, 1032, false) // Retract: 43 retracted )
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
manual for more info on generic attributes.
Equivalent asynchronous getAsyncHistory method.
-
def
getIterable(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching the molecule.Get
Iterable
of all rows as tuples matching the molecule.
Rows are lazily type-casted on each call to iterator.next().Person.name.age.getIterable.toList === List( ("Ben", 42), ("Liz", 37), )
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is a tuple of types matching the attributes of the molecule
- Definition Classes
- GetIterable
- See also
Equivalent asynchronous getAsyncIterable method.
-
def
getIterableAsOf(date: Date)(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching molecule as of date.Get
Iterable
of all rows as tuples matching molecule as of date.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Retract val tx3 = ben.retract val afterRetract = new java.util.Date // Get Iterable of all rows as of beforeInsert val iterable0: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(beforeInsert) val iterator0: Iterator[(String, Int)] = iterable0.iterator iterator0.hasNext === false // Nothing yet // Get Iterable of all rows as of afterInsert val iterable1: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(afterInsert) val iterator1: Iterator[(String, Int)] = iterable1.iterator // Type casting lazily performed with each call to `next` iterator1.next === ("Ben", 42) iterator1.next === ("Liz", 37) // Get Iterable of all rows as of afterUpdate val iterable2: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(afterUpdate) val iterator2: Iterator[(String, Int)] = iterable2.iterator // Type casting lazily performed with each call to `next` iterator2.next === ("Ben", 43) // Ben now 43 iterator2.next === ("Liz", 37) // Get Iterable of all rows as of afterRetract val iterable3: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(afterRetract) val iterator3: Iterator[(String, Int)] = iterable3.iterator // Type casting lazily performed with each call to `next` iterator3.next === ("Liz", 37) iterator3.hasNext === false // Ben gone
- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetIterable
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncIterableAsOf method.
-
def
getIterableAsOf(tx: TxReport)(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching molecule as of tx.Get
Iterable
of all rows as tuples matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids // Update (tx report 2) val tx2 = Person(ben).age(43).update // Retract (tx report 3) val tx3 = ben.retract // Get Iterable of all rows as of tx1 (after insert) val iterable1: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(tx1) val iterator1: Iterator[(String, Int)] = iterable1.iterator // Type casting lazily performed with each call to `next` iterator1.next === ("Ben", 42) iterator1.next === ("Liz", 37) // Get Iterable of all rows as of tx2 (after update) val iterable2: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(tx2) val iterator2: Iterator[(String, Int)] = iterable2.iterator // Type casting lazily performed with each call to `next` iterator2.next === ("Ben", 43) // Ben now 43 iterator2.next === ("Liz", 37) // Get Iterable of all rows as of tx3 (after retract) val iterable3: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(tx3) val iterator3: Iterator[(String, Int)] = iterable3.iterator // Type casting lazily performed with each call to `next` iterator3.next === ("Liz", 37) iterator3.hasNext === false // Ben gone
- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetIterable
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncIterableAsOf method.
-
def
getIterableAsOf(t: Long)(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching molecule as of transaction timet
.Get
Iterable
of all rows as tuples matching molecule as of transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
CallgetIterableAsOf
for large result sets to maximize runtime performance. Data is lazily type-casted on each call tonext
on the iterator.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) eids // Update (t 1031) Person(ben).age(43).update // Retract (t 1032) ben.retract // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted (43, 1032, false) // Retract: 43 retracted ) // Get Iterable of all rows as of transaction t 1028 (after insert) val iterable1: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(1028) val iterator1: Iterator[(String, Int)] = iterable1.iterator // Type casting lazily performed with each call to `next` iterator1.next === ("Liz", 37) iterator1.next === ("Ben", 42) // Get Iterable of all rows as of transaction t 1031 (after update) val iterable2: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(1031) val iterator2: Iterator[(String, Int)] = iterable2.iterator // Type casting lazily performed with each call to `next` iterator2.next === ("Liz", 37) iterator2.next === ("Ben", 43) // Ben now 43 // Get Iterable of all rows as of transaction t 1032 (after retract) val iterable3: Iterable[(String, Int)] = Person.name.age.getIterableAsOf(1032) val iterator3: Iterator[(String, Int)] = iterable3.iterator // Type casting lazily performed with each call to `next` iterator3.next === ("Liz", 37) iterator3.hasNext === false // Ben gone
- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetIterable
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncIterableAsOf method.
-
def
getIterableSince(date: Date)(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching molecule since date.Get
Iterable
of all rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.getIterable.iterator.toList === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getIterableSince(date1).iterator.toList === List("Ben", "Cay") // Cay added since date2 Person.name.getIterableSince(date2).iterator.toList === List("Cay") // Nothing added since date3 Person.name.getIterableSince(date3).iterator.toList === Nil
- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetIterable
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncIterableSince method.
-
def
getIterableSince(tx: TxReport)(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching molecule since tx.Get
Iterable
of all rows as tuples matching molecule since tx.
Datomic's internalsince
method can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.getIterable.iterator.toList === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getIterableSince(tx1).iterator.toList === List("Ben", "Cay") // Cay added since tx2 Person.name.getIterableSince(tx2).iterator.toList === List("Cay") // Nothing added since tx3 Person.name.getIterableSince(tx3).iterator.toList === Nil
- tx
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetIterable
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncIterableSince method.
-
def
getIterableSince(t: Long)(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching molecule since transaction timet
.Get
Iterable
of all rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
CallgetIterableSince
for large result sets to maximize runtime performance. Data is lazily type-casted on each call tonext
on the iterator.
t
can for instance be retrieved callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values as Iterable Person.name.getIterable.iterator.toList === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t1 Person.name.getIterableSince(t1).iterator.toList === List("Ben", "Cay") // Cay added since transaction time t2 Person.name.getIterableSince(t2).iterator.toList === List("Cay") // Nothing added since transaction time t3 Person.name.getIterableSince(t3).iterator.toList === Nil
- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
Iterable[Tpl] where Tpl is tuple of data matching molecule
- Definition Classes
- GetIterable
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncIterableSince method.
-
def
getIterableWith(txData: List[_])(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching molecule with applied raw transaction data.Get
Iterable
of all rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getIterableWith(newDataTx).size === 250
- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- returns
Iterable of molecule data
- Definition Classes
- GetIterable
- See also
Manual on
with
Equivalent asynchronous getAsyncIterableWith method.
-
def
getIterableWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Iterable[A]
Get
Iterable
of all rows as tuples matching molecule with applied molecule transaction data.Get
Iterable
of all rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val ben = Person.name("Ben").likes("pasta").save.eid // Base data Person.name.likes.getIterableWith( // apply imaginary transaction data Person(ben).likes("sushi").getUpdateTx ).iterator.toList === List( // Effect: Ben would like sushi if tx was applied ("Ben", "sushi") ) // Current state is still the same Person.name.likes.get === List( ("Ben", "pasta") )
Multiple transactions can be applied to test more complex what-if scenarios!
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
Iterable of molecule data
- Definition Classes
- GetIterable
- See also
Manual on
with
Equivalent asynchronous getAsyncIterableWith method.
-
def
getJson(n: Int)(implicit conn: Conn): String
Get json data for n rows matching molecule
Get json data for n rows matching molecule
Person.name.age.getJson(1) === """[ |{"person.name": "Ben", "person.age": 42} |]""".stripMargin
Namespace.Attribute is used as json fields. Values are quoted when necessary. Nested data becomes json objects etc.
- n
Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Equivalent asynchronous getAsyncJson method.
-
def
getJson(implicit conn: Conn): String
Get json data for all rows matching molecule.
Get json data for all rows matching molecule.
Person.name.age.getJson === """[ |{"person.name": "Ben", "person.age": 42}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin
Namespace.Attribute is used as json fields. Values are quoted when necessary. Nested data becomes json objects etc.
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Equivalent asynchronous getAsyncJson method.
-
def
getJsonAsOf(date: Date, n: Int)(implicit conn: Conn): String
Get json data for n rows matching molecule as of tx.
Get json data for n rows matching molecule as of tx.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Get List of all rows as of afterUpdate Person.name.age.getJsonAsOf(afterUpdate) === """[ |{"person.name": "Ben", "person.age": 43}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get List of n rows as of afterUpdate Person.name.age.getJsonAsOf(afterUpdate, 1) === """[ |{"person.name": "Ben", "person.age": 43} |]""".stripMargin
- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonAsOf method.
-
def
getJsonAsOf(date: Date)(implicit conn: Conn): String
Get json data for all rows matching molecule as of date.
Get json data for all rows matching molecule as of date.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) val List(ben, liz) = tx1.eids val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Retract val tx3 = ben.retract val afterRetract = new java.util.Date // No data yet before insert Person.name.age.getJsonAsOf(beforeInsert) === "" // Get List of all rows as of afterInsert Person.name.age.getJsonAsOf(afterInsert) === """[ |{"person.name": "Ben", "person.age": 42}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get List of all rows as of afterUpdate Person.name.age.getJsonAsOf(afterUpdate) === """[ |{"person.name": "Ben", "person.age": 43}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get List of all rows as of afterRetract Person.name.age.getJsonAsOf(afterRetract) === """[ |{"person.name": "Liz", "person.age": 37} |]""".stripMargin
- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonAsOf method.
-
def
getJsonAsOf(tx: TxReport, n: Int)(implicit conn: Conn): String
Get json data for n rows matching molecule as of tx.
Get json data for n rows matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids // Update (tx report 2) val tx2 = Person(ben).age(43).update // Get json for all rows as of transaction tx2 (after update) - Ben now 43 Person.name.age.getJsonAsOf(tx2) === """[ |{"person.name": "Ben", "person.age": 43}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get json for n rows as of transaction tx2 (after update) - Ben now 43 Person.name.age.getJsonAsOf(tx2, 1) === """[ |{"person.name": "Ben", "person.age": 43} |]""".stripMargin
- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonAsOf method.
-
def
getJsonAsOf(tx: TxReport)(implicit conn: Conn): String
Get json data for all rows matching molecule as of tx.
Get json data for all rows matching molecule as of tx.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) val List(ben, liz) = tx1.eids // Update (tx report 2) val tx2 = Person(ben).age(43).update // Retract (tx report 3) val tx3 = ben.retract // Get json for all rows as of transaction tx1 (after insert) Person.name.age.getJsonAsOf(tx1) === """[ |{"person.name": "Ben", "person.age": 42}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get json for all rows as of transaction tx2 (after update) - Ben now 43 Person.name.age.getJsonAsOf(tx2) === """[ |{"person.name": "Ben", "person.age": 43}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get json for all rows as of transaction tx3 (after retract) - Ben gone Person.name.age.getJsonAsOf(tx3) === """[ |{"person.name": "Liz", "person.age": 37} |]""".stripMargin
- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonAsOf method.
-
def
getJsonAsOf(t: Long, n: Int)(implicit conn: Conn): String
Get json data for n rows matching molecule as of transaction time
t
.Get json data for n rows matching molecule as of transaction time
t
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) eids // Update (t 1031) Person(ben).age(43).update // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted ) // Get json for all rows as of transaction t 1031 (after update) Person.name.age.getJsonAsOf(1031) === """[ |{"person.name": "Ben", "person.age": 43}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get json for n (1) rows as of transaction t 1031 (after update) Person.name.age.getJsonAsOf(1031, 1) === """[ |{"person.name": "Ben", "person.age": 43} |]""".stripMargin
- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonAsOf method.
-
def
getJsonAsOf(t: Long)(implicit conn: Conn): String
Get json data for all rows matching molecule as of transaction time
t
.Get json data for all rows matching molecule as of transaction time
t
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37) ) eids // Update (t 1031) Person(ben).age(43).update // Retract (t 1032) ben.retract // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted (43, 1032, false) // Retract: 43 retracted ) // Get json for all rows as of transaction t 1028 (after insert) Person.name.age.getJsonAsOf(1028) === """[ |{"person.name": "Ben", "person.age": 42}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get json for all rows as of transaction t 1031 (after update) - Ben now 43 Person.name.age.getJsonAsOf(1031) === """[ |{"person.name": "Ben", "person.age": 43}, |{"person.name": "Liz", "person.age": 37} |]""".stripMargin // Get json for all rows as of transaction t 1032 (after retract) - Ben gone Person.name.age.getJsonAsOf(1032) === """[ |{"person.name": "Liz", "person.age": 37} |]""".stripMargin
- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonAsOf method.
-
def
getJsonComposite(conn: Conn, n: Int): String
- Attributes
- protected
- Definition Classes
- GetJson
-
def
getJsonFlat(conn: Conn, n: Int): String
- Attributes
- protected
- Definition Classes
- GetJson
-
def
getJsonSince(date: Date, n: Int)(implicit conn: Conn): String
Get json data for n rows matching molecule since date.
Get json data for n rows matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time/Date from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getJsonSince(date1) === """[ |{"person.name": "Ben"}, |{"person.name": "Cay"} |]""".stripMargin // Ben and Cay added since date1 - only n (1) rows returned Person.name.getJsonSince(date1, 1) === """[ |{"person.name": "Ben"} |]""".stripMargin
- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonSince method.
-
def
getJsonSince(date: Date)(implicit conn: Conn): String
Get json data for all rows matching molecule since date.
Get json data for all rows matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time/Date from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getJsonSince(date1) === """[ |{"person.name": "Ben"}, |{"person.name": "Cay"} |]""".stripMargin // Cay added since date2 Person.name.getJsonSince(date2) === """[ |{"person.name": "Cay"} |]""".stripMargin // Nothing added since date3 Person.name.getJsonSince(date3) === ""
- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonSince method.
-
def
getJsonSince(tx: TxReport, n: Int)(implicit conn: Conn): String
Get json data for n rows matching molecule since tx.
Get json data for n rows matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getJsonSince(tx1) === """[ |{"person.name": "Ben"}, |{"person.name": "Cay"} |]""".stripMargin // Ben and Cay added since tx1 - only n (1) rows returned Person.name.getJsonSince(tx1, 1) === """[ |{"person.name": "Ben"} |]""".stripMargin
- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonSince method.
-
def
getJsonSince(tx: TxReport)(implicit conn: Conn): String
Get json data for all rows matching molecule since tx.
Get json data for all rows matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getJsonSince(tx1) === """[ |{"person.name": "Ben"}, |{"person.name": "Cay"} |]""".stripMargin // Cay added since tx2 Person.name.getJsonSince(tx2) === """[ |{"person.name": "Cay"} |]""".stripMargin // Nothing added since tx3 Person.name.getJsonSince(tx3) === ""
- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonSince method.
-
def
getJsonSince(t: Long, n: Int)(implicit conn: Conn): String
Get json data for n rows matching molecule since transaction time
t
.Get json data for n rows matching molecule since transaction time
t
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved by callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t 1028 Person.name.getJsonSince(t1) === """[ |{"person.name": "Ben"}, |{"person.name": "Cay"} |]""".stripMargin // Ben and Cay added since transaction time t 1028 - only n (1) rows returned Person.name.getJsonSince(t1, 1) === """[ |{"person.name": "Ben"} |]""".stripMargin
- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonSince method.
-
def
getJsonSince(t: Long)(implicit conn: Conn): String
Get json data for all rows matching molecule since transaction time
t
.Get json data for all rows matching molecule since transaction time
t
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved by callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t 1028 Person.name.getJsonSince(t1) === """[ |{"person.name": "Ben"}, |{"person.name": "Cay"} |]""".stripMargin // Cay added since transaction time t 1030 Person.name.getJsonSince(t2) === """[ |{"person.name": "Cay"} |]""".stripMargin // Nothing added since transaction time t 1032 Person.name.getJsonSince(t3) === ""
- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncJsonSince method.
-
def
getJsonWith(txData: List[_], n: Int)(implicit conn: Conn): String
Get json data for n rows matching molecule with applied raw transaction data.
Get json data for n rows matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getJsonWith(newDataTx).size === 250 // Imagine future db - Let's just take 10 Person.name.getJsonWith(newDataTx, 10).size === 10
- txData
Raw transaction data as java.util.List[Object]
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
with
Equivalent asynchronous getAsyncJsonWith method.
-
def
getJsonWith(txData: List[_])(implicit conn: Conn): String
Get json data for all rows matching molecule with applied raw transaction data.
Get json data for all rows matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getJsonWith(newDataTx).size === 250
- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
with
Equivalent asynchronous getAsyncJsonWith method.
-
def
getJsonWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): String
Get json data for all rows matching molecule with applied molecule transaction data.
Get json data for all rows matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val List(ben, liz) = Person.name.likes.insert( ("Ben", "pasta"), ("Liz", "pizza") ).eids // Test multiple transactions Person.name.likes.getJsonWith( Person(ben).likes("sushi").getUpdateTx, Person(liz).likes("cake").getUpdateTx ) === """[ |{"person.name": "Ben", "person.likes": "sushi"}, |{"person.name": "Liz", "person.likes": "cake"} |]""".stripMargin // Same as above, but only n (1) rows returned: Person.name.likes.getJsonWith( 1 Person(ben).likes("sushi").getUpdateTx, Person(liz).likes("cake").getUpdateTx ) === """[ |{"person.name": "Ben", "person.likes": "sushi"} |]""".stripMargin
Multiple transactions can be applied to test more complex what-if scenarios!
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
with
Equivalent asynchronous getAsyncJsonWith method.
-
def
getJsonWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): String
Get json data for all rows matching molecule with applied molecule transaction data.
Get json data for all rows matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val ben = Person.name("Ben").likes("pasta").save.eid // Base data Person.name.likes.getJsonWith( // apply imaginary transaction data Person(ben).likes("sushi").getUpdateTx ) === """[ |{"person.name": "Ben", "person.likes": "sushi"} |]""".stripMargin // Current state is still the same Person.name.likes.get === List(("Ben", "pasta"))
Multiple transactions can be applied to test more complex what-if scenarios!
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
String of json
- Definition Classes
- GetJson
- See also
Manual on
with
Equivalent asynchronous getAsyncJsonWith method.
-
def
getListOf[T](implicit conn: Conn): List[T]
- Definition Classes
- GetList
-
def
getRaw(n: Int)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule.Get
java.util.Collection
of n untyped rows matching molecule.Person.name.age.getRaw(1).toString === """[["Ben" 42]]"""
- n
Number of rows
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Equivalent asynchronous getAsyncRaw method.
-
def
getRaw(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule.Get
java.util.Collection
of all untyped rows matching molecule.Person.name.age.getRaw.toString === """[["Ben" 42], ["Liz" 37]]"""
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Equivalent asynchronous getAsyncRaw method.
-
def
getRawAsOf(date: Date, n: Int)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule as of date.Get
java.util.Collection
of n untyped rows matching molecule as of date.
Call getRawAsOf when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) val ben = tx1.eid val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Retract val tx3 = ben.retract val afterRetract = new java.util.Date // Get all rows of raw data as of beforeInsert Person.name.age.getRawAsOf(beforeInsert).toString === """[]""" // Get all rows of raw data as of afterInsert Person.name.age.getRawAsOf(afterInsert).toString === """[["Liz" 37], ["Ben" 42]]""" // Get n (1) rows of raw data as of afterInsert Person.name.age.getRawAsOf(afterInsert, 1).toString === """[["Liz" 37]]"""
- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawAsOf method.
-
def
getRawAsOf(date: Date)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule as of date.Get
java.util.Collection
of all untyped rows matching molecule as of date.
Call getRawAsOf when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Get data at a human point in time (a java.util.Date).val beforeInsert = new java.util.Date // Insert val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) val ben = tx1.eid val afterInsert = new java.util.Date // Update val tx2 = Person(ben).age(43).update val afterUpdate = new java.util.Date // Retract val tx3 = ben.retract val afterRetract = new java.util.Date // Get raw data as of beforeInsert Person.name.age.getRawAsOf(beforeInsert).toString === """[]""" // Get raw data as of afterInsert Person.name.age.getRawAsOf(afterInsert).toString === """[["Liz" 37], ["Ben" 42]]""" // Get raw data as of afterUpdate Person.name.age.getRawAsOf(afterUpdate).toString === """[["Liz" 37], ["Ben" 43]]""" // Ben now 43 // Get raw data as of afterRetract Person.name.age.getRawAsOf(afterRetract).toString === """[["Liz" 37]]""" // Ben gone
- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawAsOf method.
-
def
getRawAsOf(tx: TxReport, n: Int)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule as of tx.Get
java.util.Collection
of n untyped rows matching molecule as of tx.
The Array is only populated with n rows of type-casted tuples. CallgetRawAsOf
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) val ben = tx1.eid // Update (tx report 2) val tx2 = Person(ben).age(43).update // Retract (tx report 3) val tx3 = ben.retract // Get all rows of raw data as of tx1 (after insert) Person.name.age.getRawAsOf(tx1).toString === """[["Liz" 37], ["Ben" 42]]""" // Get n (1) rows of raw data as of tx1 (after insert) Person.name.age.getRawAsOf(tx1, 1).toString === """[["Liz" 37]]"""
- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawAsOf method.
-
def
getRawAsOf(tx: TxReport)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule as of tx.Get
java.util.Collection
of all untyped rows matching molecule as of tx.Call
getRawAsOf
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Datomic's internalasOf
method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Insert (tx report 1) val tx1 = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) val ben = tx1.eid // Update (tx report 2) val tx2 = Person(ben).age(43).update // Retract (tx report 3) val tx3 = ben.retract // Get raw data as of tx1 (after insert) Person.name.age.getRawAsOf(tx1).toString === """[["Liz" 37], ["Ben" 42]]""" // Get raw data as of tx2 (after update) Person.name.age.getRawAsOf(tx2).toString === """[["Liz" 37], ["Ben" 43]]""" // Ben now 43 // Get raw data as of tx3 (after retract) Person.name.age.getRawAsOf(tx3).toString === """[["Liz" 37]]""" // Ben gone
- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawAsOf method.
-
def
getRawAsOf(t: Long, n: Int)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule as of transaction timet
.Get
java.util.Collection
of n untyped rows matching molecule as of transaction timet
.
CallgetRawAsOf
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) eids // Update (t 1031) Person(ben).age(43).update // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted ) // Get all rows of raw data as of transaction t 1031 (after update) Person.name.age.getRawAsOf(1028).toString === """[["Ben" 43], ["Liz" 37]]""" // Get n (1) rows of raw data as of transaction t 1031 (after update) Person.name.age.getRawAsOf(1031, 1).toString === """[["Ben" 43]]"""
- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawAsOf method.
-
def
getRawAsOf(t: Long)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule as of transaction timet
.Get
java.util.Collection
of all untyped rows matching molecule as of transaction timet
.
CallgetRawAsOf
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction):// Insert (t 1028) val List(ben, liz) = Person.name.age insert List( ("Ben", 42), ("Liz", 37), ) eids // Update (t 1031) Person(ben).age(43).update // Retract (t 1032) ben.retract // History of Ben Person(ben).age.t.op.getHistory.sortBy(r => (r._2, r._3)) === List( (42, 1028, true), // Insert: 42 asserted (42, 1031, false), // Update: 42 retracted (43, 1031, true), // 43 asserted (43, 1032, false) // Retract: 43 retracted ) // Get raw data as of transaction t 1028 (after insert) Person.name.age.getRawAsOf(1028).toString === """[["Ben" 42], ["Liz" 37]]""" // Get raw data as of transaction t 1031 (after update) Person.name.age.getRawAsOf(1031).toString === """[["Ben" 43], ["Liz" 37]]""" // Ben now 43 // Get raw data as of transaction t 1032 (after retract) Person.name.age.getRawAsOf(1032).toString === """[["Liz" 37]]""" // Ben gone
- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawAsOf method.
-
def
getRawSince(date: Date, n: Int)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule since date.Get
java.util.Collection
of n untyped rows matching molecule since date.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getRawSince(date1).toString === """[["Ben"], ["Cay"]]""" // Ben and Cay added since date1 - only n (1) rows returned Person.name.getRawSince(date1, 1).toString === """[["Ben"]]"""
- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawSince method.
-
def
getRawSince(date: Date)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule since date.Get
java.util.Collection
of all untyped rows matching molecule since date.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getRawSince(date1).toString === """[["Ben"], ["Cay"]]""" // Cay added since date2 Person.name.getRawSince(date2).toString === """[["Cay"]]""" // Nothing added since date3 Person.name.getRawSince(date3).toString === """[]"""
- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawSince method.
-
def
getRawSince(tx: TxReport, n: Int)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule since tx.Get
java.util.Collection
of n untyped rows matching molecule since tx.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Datomic's internalsince
method can take a transaction entity id as argument to retrieve a database value since that transaction (excluding).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getRawSince(tx1).toString === """[["Ben"], ["Cay"]]""" // Ben and Cay added since tx1 - only n (1) rows returned Person.name.getRawSince(tx1, 1).toString === """[["Ben"]]"""
- tx
TxReport (returned from all molecule transaction operations)
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawSince method.
-
def
getRawSince(tx: TxReport)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule since tx.Get
java.util.Collection
of all untyped rows matching molecule since tx.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Datomic's internalsince
method can take a transaction entity id as argument to retrieve a database value since that transaction (excluding).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getRawSince(tx1).toString === """[["Ben"], ["Cay"]]""" // Cay added since tx2 Person.name.getRawSince(tx2).toString === """[["Cay"]]""" // Nothing added since tx3 Person.name.getRawSince(tx3).toString === """[]"""
- tx
TxReport (returned from all molecule transaction operations)
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawSince method.
-
def
getRawSince(t: Long, n: Int)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule since transaction timet
.Get
java.util.Collection
of n untyped rows matching molecule since transaction timet
.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values as Iterable Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t1 Person.name.getRawSince(t1).toString === """[["Ben"], ["Cay"]]""" // Ben and Cay added since transaction time t1 - only n (1) rows returned Person.name.getRawSince(t1).toString === """[["Ben"]]"""
- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawSince method.
-
def
getRawSince(t: Long)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule since transaction timet
.Get
java.util.Collection
of all untyped rows matching molecule since transaction timet
.
CallgetRawSince
when data doesn't need to be type-casted. Datomic's raw data is returned as-is.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values as Iterable Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t1 Person.name.getRawSince(t1).toString === """[["Ben"], ["Cay"]]""" // Cay added since transaction time t2 Person.name.getRawSince(t2).toString === """[["Cay"]]""" // Nothing added since transaction time t3 Person.name.getRawSince(t3).toString === """[]"""
- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncRawSince method.
-
def
getRawWith(txData: List[_], n: Int)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule with applied raw transaction data.Get
java.util.Collection
of n untyped rows matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getRawWith(newDataTx).size === 250 // Imagine future db - Let's just take 10 Person.name.getRawWith(newDataTx, 10).size === 10
- txData
Raw transaction data as java.util.List[Object]
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
with
Equivalent asynchronous getAsyncRawWith method.
-
def
getRawWith(txData: List[_])(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule with applied raw transaction data.Get
java.util.Collection
of all untyped rows matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getRawWith(newDataTx).size === 250
- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
with
Equivalent asynchronous getAsyncRawWith method.
-
def
getRawWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of n untyped rows matching molecule with applied molecule transaction data.Get
java.util.Collection
of n untyped rows matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val List(ben, liz) = Person.name.likes.insert( ("Ben", "pasta"), ("Liz", "pizza") ).eids // Test multiple transactions Person.name.likes.getRawWith( Person(ben).likes("sushi").getUpdateTx, Person(liz).likes("cake").getUpdateTx ).toString === """[["Ben" "sushi"], ["Liz" "cake"]]""" // Same as above, but only n (1) rows returned: Person.name.likes.getRawWith( 1 Person(ben).likes("sushi").getUpdateTx, Person(liz).likes("cake").getUpdateTx ).toString === """[["Ben" "sushi"]]"""
Multiple transactions can be applied to test more complex what-if scenarios!
- n
Int Number of rows returned
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- Note
Note how the
n
parameter has to come before thetxMolecules
vararg.- See also
Manual on
with
Equivalent asynchronous getAsyncRawWith method.
-
def
getRawWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Collection[List[AnyRef]]
Get
java.util.Collection
of all untyped rows matching molecule with applied molecule transaction data.Get
java.util.Collection
of all untyped rows matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val ben = Person.name("Ben").likes("pasta").save.eid // Base data Person.name.likes.getRawWith( Person(ben).likes("sushi").getUpdateTx ).toString ==== """[["Ben" "sushi"]]""" // Current state is still the same Person.name.likes.get === List(("Ben", "pasta"))
Multiple transactions can be applied to test more complex what-if scenarios!
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
java.util.Collection[java.util.List[AnyRef]]
- Definition Classes
- GetRaw
- See also
Manual on
with
Equivalent asynchronous getAsyncRawWith method.
-
def
getSaveTx(implicit conn: Conn): Seq[Seq[Statement]]
Get transaction statements of a call to
save
on a molecule (without affecting the db). -
def
getSince(date: Date, n: Int)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule since date.Get
List
of n rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time/Date from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getSince(date1) === List("Ben", "Cay") // Ben and Cay added since date1 - only n (1) rows returned Person.name.getSince(date1, 1) === List("Ben")
- date
java.util.Date
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncSince method.
-
def
getSince(date: Date)(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule since date.Get
List
of all rows as tuples matching molecule since date.
Get data added/retracted since a human point in time (a java.util.Date).// Transact 3 times (`inst` retrieves transaction time/Date from tx report) val date1 = Person.name("Ann").save.inst val date2 = Person.name("Ben").save.inst val date3 = Person.name("Cay").save.inst // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since date1 Person.name.getSince(date1) === List("Ben", "Cay") // Cay added since date2 Person.name.getSince(date2) === List("Cay") // Nothing added since date3 Person.name.getSince(date3) === Nil
- date
java.util.Date
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncSince method.
-
def
getSince(tx: TxReport, n: Int)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule since tx.Get
List
of n rows as tuples matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getSince(tx1) === List("Ben", "Cay") // Ben and Cay added since tx1 - only n (1) rows returned Person.name.getSince(tx1, 1) === List("Ben")
- tx
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncSince method.
-
def
getSince(tx: TxReport)(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule since tx.Get
List
of all rows as tuples matching molecule since tx.
Datomic's internalsince
can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).
Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we getAsync a TxReport from transaction operations likeget
,update
,retract
etc.// Get tx reports for 3 transactions val tx1 = Person.name("Ann").save val tx2 = Person.name("Ben").save val tx3 = Person.name("Cay").save // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since tx1 Person.name.getSince(tx1) === List("Ben", "Cay") // Cay added since tx2 Person.name.getSince(tx2) === List("Cay") // Nothing added since tx3 Person.name.getSince(tx3) === Nil
- tx
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncSince method.
-
def
getSince(t: Long, n: Int)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule since transaction timet
.Get
List
of n rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved by callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t 1028 Person.name.getSince(t1) === List("Ben", "Cay") // Ben and Cay added since transaction time t 1028 - only n (1) rows returned Person.name.getSince(t1, 1) === List("Ben")
- t
Transaction time t
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncSince method.
-
def
getSince(t: Long)(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule since transaction timet
.Get
List
of all rows as tuples matching molecule since transaction timet
.
Transaction timet
is an auto-incremented transaction number assigned internally by Datomic.
t
can for instance be retrieved by callingt
on the tx report returned from transactional operations and then be used to get data since that point in time (excluding that transaction):// 3 transaction times `t` val t1 = Person.name("Ann").save.t val t2 = Person.name("Ben").save.t val t3 = Person.name("Cay").save.t // Current values Person.name.get === List("Ann", "Ben", "Cay") // Ben and Cay added since transaction time t 1028 Person.name.getSince(t1) === List("Ben", "Cay") // Cay added since transaction time t 1030 Person.name.getSince(t2) === List("Cay") // Nothing added since transaction time t 1032 Person.name.getSince(t3) === Nil
- t
Transaction time t
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
asof
/since
Equivalent asynchronous getAsyncSince method.
-
def
getUpdateTx(implicit conn: Conn): Seq[Seq[Statement]]
Get transaction statements of a call to
update
on a molecule (without affecting the db). -
def
getWith(txData: List[_], n: Int)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule with applied raw transaction data.Get
List
of n rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getWith(newDataTx).size === 250 // Imagine future db - Let's just take 10 Person.name.getWith(newDataTx, 10).size === 10
- txData
Raw transaction data as java.util.List[Object]
- n
Int Number of rows returned
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
with
Equivalent asynchronous getAsyncWith method.
-
def
getWith(txData: List[_])(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule with applied raw transaction data.Get
List
of all rows as tuples matching molecule with applied raw transaction data.
Apply raw transaction data to in-memory "branch" of db without affecting db to see how it would then look:// Live size of Person db Person.name.get.size === 150 // Read some transaction data from file val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm") val newDataTx = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]] // Imagine future db - 100 persons would be added, apparently Person.name.getWith(newDataTx).size === 250
- txData
Raw transaction data as java.util.List[Object]
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
with
Equivalent asynchronous getAsyncWith method.
-
def
getWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): List[A]
Get
List
of n rows as tuples matching molecule with applied molecule transaction data.Get
List
of n rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val List(ben, liz) = Person.name.likes.insert( ("Ben", "pasta"), ("Liz", "pizza") ).eids // Test multiple transactions Person.name.likes.getWith( Person(ben).likes("sushi").getUpdateTx, Person(liz).likes("cake").getUpdateTx ) === List( ("Ben", "sushi") ("Liz", "cake") ) // Same as above, but only n (1) rows returned: Person.name.likes.getWith( 1 Person(ben).likes("sushi").getUpdateTx, Person(liz).likes("cake").getUpdateTx ) === List( ("Ben", "sushi") )
- n
Int Number of rows returned
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- Note
Note how the
n
parameter has to come before thetxMolecules
vararg.- See also
Manual on
with
Equivalent asynchronous getAsyncWith method.
-
def
getWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): List[A]
Get
List
of all rows as tuples matching molecule with applied molecule transaction data.Get
List
of all rows as tuples matching molecule with applied molecule transaction data.
Apply one or more molecule transactions to in-memory "branch" of db without affecting db to see how it would then look:// Current state val ben = Person.name("Ben").likes("pasta").save.eid // Base data Person.name.likes.getWith( // apply imaginary transaction data Person(ben).likes("sushi").getUpdateTx ) === List( // Effect: Ben would like sushi if tx was applied ("Ben", "sushi") ) // Current state is still the same Person.name.likes.get === List(("Ben", "pasta"))
Multiple transactions can be applied to test more complex what-if scenarios!
- txMolecules
Transaction statements from applied Molecules with test data
- conn
Implicit Conn value in scope
- returns
List[Tpl] where Tpl is a tuple of data matching molecule
- Definition Classes
- GetList
- See also
Manual on
with
Equivalent asynchronous getAsyncWith method.
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
jsonAggr(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrLazySeq(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrLazySeqDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrLazySeqQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrLazySeqToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrList(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrListDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrListQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrListRand(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrListRandDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrListRandQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrListRandToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrListToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrSingleSample(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrSingleSampleDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrSingleSampleQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrSingleSampleToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonAggrToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonMany(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonManyDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonManyQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonManyToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonMap(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonMapDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonMapQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOne(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOneAny(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOneDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOneQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOneToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptMany(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptManyDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptManyEnum(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptManyQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptManyToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptMap(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptMapDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptMapQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptOne(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptOneDate(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptOneEnum(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptOneQuoted(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
jsonOptOneToString(sb: StringBuilder, field: String, row: List[_], i: Int): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
lazy val
localOffset: String
- Definition Classes
- DateHandling
-
lazy val
localZoneOffset: ZoneOffset
- Definition Classes
- DateHandling
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
o(opt: Option[Any]): String
- Attributes
- protected
- Definition Classes
- Helpers
-
final
def
os(opt: Option[Set[_]]): String
- Attributes
- protected
- Definition Classes
- Helpers
-
def
pair(sb: StringBuilder, field: String, value: Any): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
quote(sb: StringBuilder, s: String): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
quotedPair(sb: StringBuilder, field: String, value: String): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
row2json(sb: StringBuilder, row: List[AnyRef]): StringBuilder
- Attributes
- protected
- Definition Classes
- JsonBuilder
-
def
save(implicit conn: Conn): TxReport
Save data applied to molecule attributes.
Save data applied to molecule attributes.
Returns TxReport having info about the result of the save transaction.val txReport = Person.name("Ben").age(42).save // Data has been saved in db Person.name.age.get === List(("Ben", 42))
The save operation is synchronous and blocking. Use
saveAsync
for non-blocking asynchronous saves.- Definition Classes
- Molecule
-
def
saveAsync(implicit conn: Conn, ec: ExecutionContext): Future[TxReport]
Asynchronously save data applied to molecule attributes.
Asynchronously save data applied to molecule attributes.
ReturnsFuture
with TxReport having info about the result of the save transaction.val futureSave: Future[TxReport] = Person.name("Ben").age(42).saveAsync for { _ <- futureSave result <- Person.name.age.getAsync } yield { // Data was saved result.head === ("Ben", 42) }
The save operation is asynchronous and non-blocking. Internally calls Datomic's asynchronous API.
- Definition Classes
- Molecule
-
final
def
seq[T](values: Seq[T]): String
- Attributes
- protected
- Definition Classes
- Helpers
-
def
str2date(s: String, zoneOffset: ZoneOffset = localZoneOffset): Date
- Definition Classes
- DateHandling
-
def
str2zdt(s: String, zoneOffset: ZoneOffset = localZoneOffset): ZonedDateTime
- Definition Classes
- DateHandling
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
final
def
time(n: Int, prev: Int = 0): Unit
- Attributes
- protected
- Definition Classes
- Helpers
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
truncateDateStr(dateStr: String): String
- Definition Classes
- DateHandling
-
final
def
tupleToSeq(arg: Any): Seq[Any]
- Attributes
- protected
- Definition Classes
- Helpers
-
def
unescStr(s: String): String
- Definition Classes
- Helpers
-
def
untupled(rawData: Iterable[Seq[Any]]): Seq[Seq[Any]]
- Attributes
- protected
- Definition Classes
- Molecule
-
def
update(implicit conn: Conn): TxReport
Update entity with data applied to molecule attributes.
Update entity with data applied to molecule attributes.
Returns TxReport with info about the result of the update transaction.// Current data val ben = Person.name("Ben").age(42).save.eid // Update entity of of Ben with new age value Person(ben).age(43).update // Ben is now 43 Person.name.age.get === List(("ben", 43))
The update operation is synchronous and blocking. Use
updateAsync
for non-blocking asynchronous updates.- Definition Classes
- Molecule
-
def
updateAsync(implicit conn: Conn, ec: ExecutionContext): Future[TxReport]
Asynchronously update entity with data applied to molecule attributes.
Asynchronously update entity with data applied to molecule attributes. Returns
Future
with TxReport having info about the result of the update transaction.for { saveTx <- Person.name("Ben").age(42).saveAsync benId = saveTx.eid updateTx <- Person(benId).age(43).updateAsync result <- Person.name.age.getAsync } yield { // Ben is now 43 result.head === ("ben", 43) }
The update operation is asynchronous and non-blocking. Internally calls Datomic's asynchronous API.
- Definition Classes
- Molecule
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
lazy val
zone: ZoneId
- Definition Classes
- DateHandling
-
object
debugInsert extends debugInsert with checkInsertModel
See debugInsert
-
object
getInsertTx extends getInsertTx with checkInsertModel
See getInsertTx
-
object
insert extends insert with checkInsertModel
See insert
-
object
insertAsync extends insertAsync with checkInsertModel
See insertAsync
-
object
mkDate
- Attributes
- protected
- Definition Classes
- Helpers
Inherited from Molecule[A]
Inherited from ShowDebug[A]
Inherited from GetAsyncJson
Inherited from GetAsyncRaw
Inherited from GetAsyncList[A]
Inherited from GetAsyncIterable[A]
Inherited from GetAsyncArray[A]
Inherited from GetJson
Inherited from GetRaw
Inherited from GetList[A]
Inherited from GetIterable[A]
Inherited from GetArray[A]
Inherited from JsonBuilder
Inherited from CastHelpers[A]
Inherited from CastHelpersAggr[A]
Inherited from CastHelpersOptNested[A]
Inherited from Helpers
Inherited from DateHandling
Inherited from RegexMatching
Inherited from MoleculeBase
Inherited from AnyRef
Inherited from Any
get
getAsync
getAsOf
getAsyncAsOf
getArrayAsOf
getAsyncArrayAsOf
getIterableAsOf
getAsyncIterableAsOf
getJsonAsOf
getAsyncJsonAsOf
getRawAsOf
getAsyncRawAsOf
getSince
getAsyncSince
getArraySince
getAsyncArraySince
getIterableSince
getAsyncIterableSince
getJsonSince
getAsyncJsonSince
getRawSince
getAsyncRawSince
getWith
getAsyncWith
getArrayWith
getAsyncArrayWith
getIterableWith
getAsyncIterableWith
getJsonWith
getAsyncJsonWith
getRawWith
getAsyncRawWith
getHistory
(only implemented to return List of tuples)
save
insert
update
getTx
Debug get
Molecule getter debugging methods.
Debug operation
Molecule operation debugging methods (no effect on live db).
Documentation/API for the Molecule library - a meta DSL for the Datomic database.
Manual | scalamolecule.org | Github | Forum