使用Spring Roo从数据库模式生成JPA实体时ActiveRecord和Repository之间的差异?

Nam*_* VU 0 activerecord jpa repository spring-roo dbref

由于Spring Roo指导架构上执行DBRE,我们使用以下命令生成实体及其相关文件.

我们可以选择参数--activerecord或--repository; 选择后者将忽略第一个.

我的问题是两者之间的区别是什么?

roo> 数据库逆向工程师 --schema DbSchemaName --package~.domain --activeRecord --repository --service --testAutomatically --enableViews --includeTables --excludeTables --includeNonPortableAttributes --disableVersionFields --disableGeneratedIdentifiers

使用--activeRecord选项创建"Active Record"实体(如果未指定,则为默认值).

使用--repository选项为每个实体创建Spring Data JPA存储库.如果指定为true,则忽略--activeRecord选项.

eru*_*uiz 5

Roo在http://docs.spring.io/spring-roo/docs/1.3.1.RC1/reference/html/base-layers.html#d4e1932上谈论这些模式

活动记录模式

  • 活动记录模式是访问数据库中的数据的方法.数据库表或视图包装在一个类中.因此,对象实例绑定到表中的单个行.

  • 示例:持久化新实例(创建新行):

    Part part = new Part();
    part.name = "Sample part";
    part.price = 123.45;
    part.save();
    
    Run Code Online (Sandbox Code Playgroud)

存储库模式

  • 存储库在域和数据映射层之间进行调解,其作用类似于内存中的域对象集合.从概念上讲,存储库封装了持久存储在数据存储中的对象集以及对它们执行的操作,从而提供了更加面向对象的持久层视图.存储库还支持在域和数据映射层之间实现清晰分离和单向依赖的目标.

  • 示例:持久化新实例(创建新行):

    Part part = new Part(); 
    part.name = "Sample part"; 
    part.price = 123.45; 
    
    //RepositoryFactorySupport ;
    factory = ...; // Instantiate factory here or similar PartRepository 
    repository = factory.getRepository(PartRepository.class); 
    repository.save(part);
    
    Run Code Online (Sandbox Code Playgroud)