This document discusses the differences between domain models and relational database models. Specifically, it notes that in a domain model, a member entity can have a member status anywhere, but in a relational database, the member status is only available if joined from another table. It recommends using inversion of control and interfaces to decouple the view, domain, and data access layers so that domain entities never return null values for member status.
4. ▸ Status status =
member.getMemberStatus().getStatusAsStatus();
▸ JOIN (memberCB.setupSelect_MemberStatus())
▸ Status status =
member.getMemberStatus().getStatusAsStatus();
6. WHY?
▸ Domain Model
▸ member has a member status ANYTIME, ANYWHERE!
▸ DBFlute = SQL (Relational Model)
▸ member table has a member_status IF YOU JOIN (!)
12. INVERSION OF CONTROL
▸ View Domain DBFlute
▸ Status status = member.getStatus(); // never null
▸ DBFlute (Dao) Domain Interface
▸ Member member =
memberRepository.findById(memberId);