是否可以为同一jpa实体创建多个表?

时间:2020-02-05 14:24:43

标签: java spring hibernate jpa spring-data-jpa

我有一个实体Messages,这是一个用于记录时间戳,消息和machine_uuid的类

public class Messages  {

    private UUID                uuid;
    private UUID                machine;
    private long                timestamp;
    private String              message;                                        
}

如果有许多机器定期发送消息,则该表很快就会变得很大。是否可以为每台计算机创建一个单独的消息表?

2 个答案:

答案 0 :(得分:2)

不。在JPA中是不可能的,但是大多数数据库供应商在这种情况下都支持“表分区”。

https://dev.mysql.com/doc/refman/8.0/en/partitioning.html

答案 1 :(得分:0)

如果您有一个数据库实例,则无需为不同的机器ID使用不同的表。您可以为计算机UUID创建INDEX,并进行操作而不会浪费时间。不好的做法是为不同的ID使用不同的表。

要想按名称支持不同的表(如表messages_machine_id_1,messages_machine_id_2),您将非常痛苦。尤其是,当您要删除或添加其他计算机时,使用计算机ID进行查询既容易又快捷。

这不是问题,如果表很大,只需添加索引即可快速检索数据。

相关问题