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
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>