我的通用数据映射器是实际的数据映射器吗?

时间:2018-07-13 18:15:18

标签: hibernate design-patterns datamapper

我收到了一个任务,该任务使用数据层的数据映射器模式实现一个小型系统。

我不想为每个实体编写每个映射器的重复性任务,而且我被限制为不使用任何库或框架来进行映射,因此我实现了一个通用映射器,该映射器使用反射来生成带有以下内容的SQL脚本:以下接口(类似伪代码):

Mapper {

    create (Class) {
        create table in database using Class as reference;
    }
    create (object) {
        insert object into database;
    }

    read (Class, filters...) {
        return a list of objects that match the class specification in the database using the provided filters;
    }

    update(object) {
        update row of the database that has object's primary key with the values in object;
    }

    delete(Class) {
        drop table in the database that has the Class specification;
    }

    delete(object) {
        remove row that has the object's primary key;
    }
}

然后,我将使用Java注释在要使用的类中指定主键和外键以及String大小约束。

在将完成的作业交给老师之后,他告诉我我实施了一个活动记录而不是数据映射器,现在我对这是否正确感到困惑。

那真的不是映射器吗?他没有给我一个理由,只是说我本质上实现了Hibernate,而且它不是一个映射器。

0 个答案:

没有答案