コレクションから毎日投稿の一部を読んでいるときに、Googleリーダーは「Morphia」という魅力的な名前のMongoDBのORM投稿を見つけました。 以下に、「非常に簡単な概要」のタイトルを主張して、その資料から資料のレイアウトを見つけます。
- Morphiaは非常に使いやすいです。 簡単で高速なフレームワークです。
- 注釈付きPOJOオブジェクトとDAOアプローチの両方をサポート
- 構成全体は注釈によって定義され、XMLファイルは使用されません
- 拡張インターフェイスがサポートされています(現在、検証はフレームワーク(jsr330)に組み込まれています)。
- Google Guice、Spring、およびその他のDIフレームワークで最適に動作します。
- 多数の拡張ポイントが含まれています
- GWTをサポート
Morphiaのエンティティは次のように説明されます。
@Entity("employees") class Employee { @Id ObjectId id;
次のようにデータベースを操作できます。
Morphia morphia = new Morphia(); db = new Mongo(); Datastore ds = morphia.createDatastore(db, appname, user, pass.toCharArray()); morphia.map(Employee.class); ds.save(new Employee("Mister", "GOD", null, 0));
Fluent APIを使用して作成されたクエリの例:
Query q = ds.createQuery(MyEntity.class).filter("foo >", 12).filter("foo <", 30).order("dateAdded").offset(1000).retrievedFields(true, "foo");
DAOスタイルの作業例:
public class HotelDAO extends BasicDAO<Hotel, String> { public HotelDAO(Morphia morphia, Mongo mongo ) { super(mongo, morphia, "myDB"); } public List<Hotel> findByTitle( String title ) { Pattern regExp = Pattern.compile(name + ".*", Pattern.CASE_INSENSITIVE); return ds.find(Hotel.class).filter("title", regExp).sort("title").asList(); } } HotelDAO hDAO = new HotelDAO(...); List<Hotel> hotels = hDAO.findByTitle("Luxury"); hDAO.save(new Hotel(...));
参照: