4

我想创建一个 Spring Data Repository,它应该通过 Spring Data Rest 公开。

问题是我的“实体”不是来自数据库。我有几个具有自定义注释并被扫描的类,这提供了一些我喜欢向客户公开的信息。

所以基本上我需要类似的东西:

@RestRepository(path="myClasses")
interface MyRepo extends Repository<MyClass, String> {
    List<MyClass> findAll();
}

class MyRepoImpl implements MyRepo {

   List<MyClass> classes;

   MyRepoImpl() {
     // fetch stuff via classpath scanning
     // and save it to "classes"
   }

   @Override
   List<MyClass> findAll() {
     return classes;
   }

}

我现在从 Spring Data MongoDB 复制并粘贴了大约 10 个文件,以便使用@EnableCustomRepositories自定义 FactoryBean 等获取自定义注释。很多东西。而且还是不行……

有没有一种简单的方法可以做到这一点?当然我可以使用 custom @Controller,但是我不能rel在我的其他实体中使用 nice 。

我真的只需要一些东西extends Repository<T, ID>并创建一些自定义方法。还是我必须使用CrudRepositorySpring Data Rest 才能找到findOneandfindAll方法?


编辑:

更准确地说:

我的应用程序有很多Permissions被 Spring Security 使用的硬编码。每组权限都有自己的类。例如:

@Permission
class UserPermission {
  public final static String RESET_PASSWORD = "USER_RESET_PASSWORD";
  public final static String UPDATE_PROFILE = "USER_UPDATE_PROFILE";
}

现在还有一个名为持久化的类PermissionGroup,它被持久化到 DB。这基本上只是:

class PermissionGroup {
  ID id;
  List<String> permissions;
}

我想要的是,我从 Spring Data Rest 获得那些典型的 URL,它们公开了我的权限。所以我可以使用这些 URL 引用向 PermissionGroup 添加/删除权限。IE:

POST http://localhost:8080/app/permissionGroups

{
  "permissions": [
    { "href" : "http://.../permissions/USER_RESET_PASSWORD" },
    { "href" : "http://.../permissions/USER_UPDATE_PROFILE" }
  ]
}
4

1 回答 1

-1

不要使用任何注释或配置来使用任何数据库,则无需在实体类中指定,您必须在侧集方法中提供实现。-

//@Entity
//@Table(name="myClass")

    class MyClass
    {

    private String name;

    public String getName(){

}

public void setName(){
this.name = "Lisa"
}

}
于 2014-04-23T11:00:47.307 回答