0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Mendix Pro】DomainModelとは - エンティティを定義する

Last updated at Posted at 2025-04-19

Mendixでアプリ開発を進めるにあたり、まず作業をする場所はDomainModelへのテーブル(エンティティ)作成だと思います。
下記のようにDomainModelはモジュールごとに1つ存在しており、最初は何もありません。

image.png

Mendixには「永続エンティティ」と「非永続エンティティ」という2つのエンティティの定義の仕方が基本的にはあるのですが、本記事ではその内容には踏み込まず下記の1点について記述します。

ポイント
永続エンティティとして定義したエンティティはMendixではテーブルとして扱われる

つまり、データベースのテーブルとして扱われるため、データが実際に格納されていきます。
(非永続エンティティは逆で処理が終了するとデータは消えるメモリのようなもの)
MendixにはあらかじめデフォルトでDBが設定されているため、自分で別のMySQLやOracleなどの外部DBを使用する以外は内包されているDBを使うことになります。

image.png

実際にエンティティを定義してみましょう。

アプリの作成に必要なテーブルとして、まずは手始めに「ユーザ情報」を作ってみます。

ユーザ情報で持っておきたいものは
・苗字
・名前
・フルネーム
・メールアドレス
・削除フラグ
など

物理名は「UserMaster」とします。

①青い「e」マークを押すと、エンティティが作成できます
image.png

②作成したエンティティをダブルクリックすると、下記のような画面がポップします
image.png

(Persistable=永続性のトグルがOnになっていますね)
英語の通り、エンティティのオブジェクトはデータベースに格納されていきます。

③エンティティの名前を決めます
image.png

④エンティティのAttribute(属性)を作っていきます
Attributeタブでnewを押し、下記のように設定し、OKを押します。
image.png

デフォルト値に何かを入れておきたいときはDefault Valueに好きな値を設定します
また、型は下記が選べます
image.png

⑤上記の要領で登録を繰り返すと下記のようになります
テーブルに見えてきましたね!
image.png

今回はAssociationやEventHandlers、AccessRulesなどのタブの説明はしませんが、このままOKを押下すると、DomainModelにユーザ情報エンティティが作成され、実際の処理でオブジェクトを生成したり、画面に表示したり、コミットしたりと使用できるようになります。

image.png

Mendix最大の特長であるアソシエーションの話や、権限設定については後日別の記事でとさせてください。

永続エンティティは青色、非永続エンティティは黄色(オレンジ?)で表されます。
image.png

永続エンティティは登録先のエンティティやマスタテーブルとして、
非永続エンティティは画面表示用や処理用など一時的な使用として使われることが多いと思います。

例)
永続エンティティ→非永続エンティティへオブジェクトのデータ内容を移し
画面上では非永続エンティティのデータに対してユーザが情報を入力
登録処理では非永続エンティティから永続エンティティに更新をかける形
image.png

詳しい処理の作り方は別記事でご紹介します。
イメージはこのような感じとなります。

DomainModelのエンティティの定義の仕方については以上です。
お読みいただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?