NAME

DBIx::EAV::Cursor - Represents a query used for fetching entities.

SYNOPSIS

# get cursor from resultset
my $cursor = $eav->resultset('CD')->search(\%query)->cursor;

while (my $cd = $cursor->next) {

    # $cd is the raw hashref returned from database
    printf "CD id: %d\n", $cd->{id};
}

DESCRIPTION

A cursor is used to build, execute and iterate over a SQL query for the entities table. A a cursor instance is returned from find and from get (when you get() related data). You will never need to create a instance of this class yourself.

METHODS

all

Arguments: none
Return Value: @entities

Returns all entities in the result.

count

Arguments: none
Return Value: $count

Performs an SQL COUNT with the same query as the cursor was built with to find the number of elements.

next

Arguments: none
Return Value: $result | undef

Returns the next element in the resultset (undef if there is none).

Can be used to efficiently iterate over records in the resultset:

my $cursor = $eav->resultset('CD')->find;
while (my $cd = $cursor->next) {
  print $cd->get('title');
}

Note that you need to store the cursor object, and call next on it. Calling resultset('CD')->next repeatedly will always return the first record from the cursor.

first

Arguments: none
Return Value: $result | undef

Resets the cursor (causing a fresh query to storage) and returns an object for the first result (or undef if the resultset is empty).

limit

Arguments: $limit
Return Value: $self

Sets the query limit option. Dies if called when the query is already executed.

offset

Arguments: $offset
Return Value: $self

Sets the query offset option. Dies if called when the query is already executed.

LICENSE

Copyright (C) Carlos Fernando Avila Gratz.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Carlos Fernando Avila Gratz <cafe@kreato.com.br>