歡迎您光臨本站 註冊首頁

Entity for D 2.5.0 發布,D 語言 ORM 實現

←手機掃碼閱讀     admin @ 2019-10-18 , reply:0

Entity 是 D語言( DLang )資料庫操作 ORM 框架,設計參照 javax JPA 實現,具有很好的擴展性和規範性,資料庫驅動依賴 HuntLabs 開發的原生資料庫驅動庫 hunt-database

特性

  1. 實現了完整的 CriteriaQuery 支持

  2. 標準化 Repository 使用封裝

  3. 完全對象化查詢,不用考慮底層資料庫驅動

  4. 實現 EQL(Entity Query Language)實現對象化 SQL 查詢語言

支持的資料庫

  • PostgreSQL 9.0+

  • MySQL 5.1+

本次主要更新內容

  • 針對 EQL 進行增強

  • 簡化聯表查詢

  • 重構資料庫連接池部分

  • 使用全新的 hunt-database

  • 移除 libmysql / libpg 依賴,使用 DLang 重構資料庫驅動層

  • 修復部分已知問題

使用示例

用戶模型


    module app.model.User;

    import hunt.entity;

    @Table("users")
    class User : Model
    {
        mixin MakeModel;

        @AutoIncrement
        @PrimaryKey
        int id;

        string name;

        int created;

        int updated;
    }

文章模型


    module app.model.Post;

    import hunt.entity;

    import app.model.User;

    @Table("posts")
    class Post : Model
    {
        mixin MakeModel;

        @AutoIncrement
        @PrimaryKey
        int id;

        string title;

        int uid;
        @JoinColumn("uid")
        User user;

        string content;

        int status;

        int created;

        int updated;
    }


使用 EQL 進行條件查詢



// 通過 EQL 查詢出 10 條文章,最新發表的排在前面
auto query = em.createQuery!(Post)("SELECT p FROM Post p WHERE p.status = 1 ORDER BY p.created DESC limit 10");

foreach (post; query.getResultList())
{
    logDebug(post.title); // 列印文章標題
    logDebug(post.user.name); // 輸出作者名字
}

 


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/110670/entity-updated
Entity for D 2.5.0 發布,D 語言 ORM 實現已經有227次圍觀

http://coctec.com/news/all/show-post-217087.html