###ORMを作ってみたいと考えています
ORMを作ってみたいと考えているのですが、HasManyの実装方法がわからず困っています。
usersテーブル(id, name)
itemsテーブル(id, name)
で1:Nのリレーションがあったとします。
sql
1select u.name, i.name from users as u inner join items as i on u.id = i.user_id;
を実行すると
otake|item1
otake|item2
という結果が返ってくると思うのですが、これをu.name: String, i.name: Seq[String]にまとめたいです。
どのような処理をすればまとめることができるのでしょうか?
言語はなんでもいいですがC++だと嬉しいです。
###C++でドライバを使ってselectした結果を表示するもの
c++
1#include <memory> 2#include <mysql_connection.h> 3#include <mysql_driver.h> 4#include <cppconn/resultset.h> 5#include <cppconn/statement.h> 6 7int main(int argc, char const *argv[]) { 8 auto driver = sql::mysql::get_mysql_driver_instance(); 9 auto con = std::shared_ptr<sql::Connection>(driver->connect("localhost", "root", "")); 10 con->setSchema("test"); 11 auto stmt = std::shared_ptr<sql::Statement>(con->createStatement()); 12 auto res = std::shared_ptr<sql::ResultSet>(stmt->executeQuery("select u.name, i.name from users as u inner join items as i on u.id = i.user_id")); 13 while (res->next()) { 14 std::cout << res->getString(1) << ", " << res->getString(2) << std::endl; 15 } 16 return 0; 17}
###試したこと
幾つかORMのソースを見てみたのですがわかりませんでした。(以下ソースを見てみたもの)
Diesel
ScalikeJDBC
hiberlite
Sequelize
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー