Die JPA-Konfiguration für verwaltete Entitätsklasse in main_project sieht wie folgt aus:
Code: Select all
@Entity
public abstract class MainEntity {
@Id
@GeneratedValue(GenerationType=?)
@Column(name = "id")
private T id;
}
@Entity
public class Personnel extends MainEntity {
@Column(name = "firstName")
private String firstName;
// other proprties
}
Als ich main_project als Abhängigkeit in Projekt A verwendet habe, Entitätsklasse von A-Projekt erweitert MainEntity und erstellt Es handelt sich um eigene Entitätsklassen und eine eigene Datenbankkonfigurationsdatei.
Mein Problem liegt im Typ des DBMS und GenerationType in der id-Eigenschaft in main_project.
- 1) wenn A-Projekt Verwendet die Mysql-Datenbank, MainEntity muss haben:
Code: Select all
@GeneratedValue(strategy = GenerationType.IDENTITY)
- 2) wenn Ein Projekt die Oracle-Datenbank MainEntity< verwendet /strong> muss Folgendes haben:
Code: Select all
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_generator")
Code: Select all
@SequenceGenerator(name="id_generator", sequenceName = "id_seq", allocationSize=1)
Ich denke, dass ich das Java-Util zur Laufzeit reflektieren und einige Anmerkungen hinzufügen muss, die auf dem Datenbanktyp basieren! Ist es richtig?
Ich habe auch gelesen, this_post_19875993, aber es hat nicht geholfen.
this_post_30731627 erklärte, dass wir einen der benutzerdefinierten GenerationType[/b] auswählen können, ich aber automatisch ohne Änderungen an main_project auswählen möchte, da A ein Projekt nicht ändern kann MainEntity-Klasse von main_project und kann sie einfach verwenden.