想請問在ORM的框架中,是怎麼做one to many,many to many這些關聯轉成List的?
ex: 假設我有這樣的資料
我會希望轉成物件後會變成像這樣:
class Teacher{
private String id;
private String name;
private String age;
private List<Student> students;
}
class Student{
private String name;
}
我知道許多ORM框架可以做到,但現在遇到的環境無法使用ORM,必須手動做這部分,
有前輩可以指點一下嗎,不知道怎麼下手比較好
這是python的code
orm
class Author(models.Model):
name = models.CharField(max_length=20)
class Book(models.Model):
name = models.CharField(max_length=20)
author = models.ManyToManyField("Author")
會產生3張表
book、author、book_author
book
id|name
1 |java
2 |python
author
id|name
1 |aaa
2 |bbb
book_author
book_id|author_id
1 |1
1 |2
2 |2
程式端那段不知道怎麼轉會比較好
假設我要選取java這本書的作者,從book_author去延伸:
select book.name as book_name, author.name as author
from book_author
join author on author_id = author.id
join book on book_id = book.id
where book_author.book_id = (
select id
from book
where book.name = 'java'
)
另外還有個作弊辦法,在其他地方寫orm去生成raw sql然後直接貼到程式裡。
然後1對多就直接join或子查詢就好了,比較沒那麼麻煩,要多一張表。