数据库对象中get_all_pointer指令的详解


            /**
             *  SELECT * routine.
             *  O is an object type to be extracted. Must be specified explicitly.
             *  @return All objects of type O as `std::unique_ptr<O>` inside a `std::vector` stored in database at the moment.
             *  @note If you need to return the result in a different container type then use a different `get_all_pointer` function overload `get_all_pointer<User, std::list<User>>`
             *  @example: storage.get_all_pointer<User>(); - SELECT * FROM users
             *  @example: storage.get_all_pointer<User>(where(length(&User::name) > 6)); - SELECT * FROM users WHERE LENGTH(name)  > 6
             */
            template<class O, class... Args>
            auto get_all_pointer(Args &&... args) {
                this->assert_mapped_type<O>();
                auto statement = this->prepare(sqlite_orm::get_all_pointer<O>(std::forward<Args>(args)...));
                return this->execute(statement);
            }

翻译

             * SELECT * 例程。
             * O是要提取的对象类型。必须明确指定。
             * @return 所有类型为O的对象,作为`std::unique_ptr<O>`在数据库中存储的`std::vector`内。
             * 如果你需要以不同的容器类型返回结果,那么使用不同的`get_all_pointer`函数 overload `get_all_pointer<User, std::list<User>>`。
             * @example: storage.get_all_pointer<User>(); - SELECT * FROM users
             * @example: storage.get_all_pointer<User>(where(length(&User::name) > 6)); - SELECT * FROM users WHERE LENGTH(name)> 6。
            /**
             *  SELECT * routine.
             *  O is an object type to be extracted. Must be specified explicitly.
             *  R is a container type. std::vector<std::unique_ptr<O>> is default
             *  @return All objects of type O as std::unique_ptr<O> stored in database at the moment.
             *  @example: storage.get_all_pointer<User, std::list<User>>(); - SELECT * FROM users
             *  @example: storage.get_all_pointer<User, std::list<User>>(where(length(&User::name) > 6)); - SELECT * FROM users WHERE LENGTH(name)  > 6
            */
            template<class O, class R, class... Args>
            auto get_all_pointer(Args &&... args) {
                this->assert_mapped_type<O>();
                auto statement = this->prepare(sqlite_orm::get_all_pointer<O, R>(std::forward<Args>(args)...));
                return this->execute(statement);
            }
             * SELECT * 例程。
             * O是要提取的对象类型。R是容器类型。
             * std::vector<std::unique_ptr<O>>是默认的。
             * @return 当前数据库中存储的所有类型为 O 的对象为 std::unique_ptr<O>。
             * @example: storage.get_all_pointer<User, std::list<User>>(); - SELECT * FROM users
             * @example: storage.get_all_pointer<User, std::list<User>>(where(length(&User::name) > 6)); - SELECT * FROM users WHERE LENGTH(name) > 6。

猜你喜欢

转载自blog.csdn.net/CHYabc123456hh/article/details/111332202