在运行时更改表-Spring API Rest

时间:2018-08-01 13:58:42

标签: java spring rest spring-rest

现在,我有下一个实体。这是我数据库的 m1 表。

@Entity(name = "m1")
@Data
public class Information {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;

    private String date;
    private Double weight_1;
    private Double weight_2;
    private Double weight_3;
    private Double weight_4;
    private int working;

}

因此,当我对APIRest进行一些调用时,它将向我返回与 m1 表相对应的信息。我拥有的控制器是下一个(返回所有信息的简单控制器):

@Controller
@RequestMapping(path = "/information")
public class InformationController {

    @Autowired
    private InformationRepository repository;

    @GetMapping(path="/all")
    public @ResponseBody List<Information> getAllInformations() {
        // This returns a JSON or XML with the users
        return repository.findAll();
    }
}

问题是:有任何方法可以在运行时更改 m1 的名称。例如,我可以将表的名称放在调用路径中,而在API Rest中使用它吗?

也许这是不可能的,而我却以一种我不知道的坏方式来做。

编辑:我的意思是,我可以通过将所需的表放在要调用的url /路径中来更改API Rest正在获取数据的表。例如:在我的情况下,APIRest获取数据的默认表/实体为 m1 ,因此我可以调用http://localhost:8080/information/especifictable/all/,其中especific table是我希望接收数据库的数据,并在API Rest中使用该url参数,并使用 especifictable 更改默认的 m1

我不知道我是否解释得很好,我也不知道如何解释得很好。

1 个答案:

答案 0 :(得分:1)

只有在DB中有两个看起来相同的表时,这种设计才有意义。如果是这种情况,则您的数据库设计有问题。

据我所知,基本上是不可能的。