@Entity
@Table(name = TaxiBusiness.tableName)
public class TaxiBusiness {
    public static final String tableName = "gps_accept_order_" + 20170306;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private int ID;
    ...
}

Je souhaite réutiliser la même entité pour parcourir tous les schémas et tables. Un schéma par mois et une table par jour. Comment faire?

enter image description here

1
Zetian 20 avril 2017 à 06:17

3 réponses

Meilleure réponse

Vous devez parcourir toutes les tables qui ont la même structure. Par conséquent, pourquoi ne pas simplement copier "table_date" un par un dans une autre table, "current_table". Ensuite, faites tout ce dont vous avez besoin sur "current_table".

1
dongx 24 avril 2017 à 06:39

En fait, ce n'est pas une bonne pratique. Ce sera mieux si vous ne gardez qu'un seul schéma. Vous pouvez améliorer la conception de votre base de données afin que, quels que soient le mois et le jour, nous n'ayons pas besoin de créer une table séparée par jour. C'est en fait une mauvaise idée de ce que vous pensez réaliser.

Pensez à un moyen efficace de simplifier la conception de la base de données.

Bonne chance!!

-1
Subrata nath 20 avril 2017 à 05:30

Comme @Subrata l'a mentionné, ce n'est peut-être pas une bonne pratique de créer une nouvelle table quotidiennement.

Mais de toute façon, si vous voulez le faire, il y a une option à laquelle je peux penser serait d'utiliser un synonyme / alias de base de données: FOO serait un alias pour FOO_20170306 jusqu'à ce que ... vous modifiez l'alias pour qu'il pointe sur FOO_20170307.

Pour plus de détails, vous pouvez examiner la réponse: https://stackoverflow.com/a/3880200/1934211

J'espère que cela fonctionne pour vous, mais ne l'avez pas testé.

Modifié:

Voici un moyen d'utiliser des synonymes de tables en veille prolongée: Entité JPA sur synonyme au lieu de table

Une autre option que j'ai trouvée est de créer un Naming personnalisé Stratégie pour les tables de mise en veille prolongée: pour plus de détails, consultez: https://stackoverflow.com/a/3618315/1934211

1
Community 23 mai 2017 à 12:34