Lassen Sie mich diese Frage beantworten:
Zunächst einmal ist die Verwendung von Anmerkungen als Konfigurationsmethode nur eine bequeme Methode, anstatt die endlose XML-Konfigurationsdatei zu kopieren.
Die @Id
Anmerkung wird von javax.persistence.Id
,geerbt, wobei angegeben wird , dass das unten stehende Elementfeld der Primärschlüssel der aktuellen Entität ist. Daher können Sie im Ruhezustand und im Frühjahr einige reflect
Arbeiten ausführen, die auf dieser Anmerkung basieren. Für Details überprüfen Sie bitte javadoc für Id
Die @GeneratedValue
Anmerkung dient zum Konfigurieren der Inkrementierungsart der angegebenen Spalte (Feld). Beispielsweise können Sie bei der Verwendung in der Definition der Tabelle Mysql
angeben auto_increment
, dass sie selbst inkrementell sein soll, und dann verwenden
@GeneratedValue(strategy = GenerationType.IDENTITY)
im Java-Code, um anzuzeigen, dass Sie auch die Verwendung dieser datenbankserverseitigen Strategie bestätigt haben. Sie können den Wert in dieser Anmerkung auch ändern, um ihn an unterschiedliche Anforderungen anzupassen.
1. Definieren Sie die Reihenfolge in der Datenbank
Zum Beispiel muss Oracle sequence
als Inkrementierungsmethode verwenden, sagen wir, wir erstellen eine Sequenz in Oracle:
create sequence oracle_seq;
2. Beziehen Sie sich auf die Datenbanksequenz
Nachdem wir die Sequenz in der Datenbank haben, müssen wir jedoch die Beziehung zwischen Java und DB mithilfe von Folgendem herstellen @SequenceGenerator
:
@SequenceGenerator(name="seq",sequenceName="oracle_seq")
sequenceName
ist der wirkliche Name einer Sequenz in Oracle, name
wie Sie ihn in Java nennen möchten. Sie müssen angeben, sequenceName
ob es sich von unterscheidet name
, andernfalls verwenden Sie einfach name
. Normalerweise ignoriere ich sequenceName
, um meine Zeit zu sparen.
3. Verwenden Sie die Sequenz in Java
Schließlich ist es Zeit, diese Sequenz in Java zu verwenden. Fügen Sie einfach hinzu @GeneratedValue
:
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
Das generator
Feld bezieht sich darauf, welchen Sequenzgenerator Sie verwenden möchten. Beachten Sie, dass es sich nicht um den tatsächlichen Sequenznamen in der Datenbank handelt, sondern um den Namen, den Sie im name
Feld von angegeben haben SequenceGenerator
.
4. Vervollständigen Sie
Die vollständige Version sollte also so aussehen:
public class MyTable
{
@Id
@SequenceGenerator(name="seq",sequenceName="oracle_seq")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
private Integer pid;
}
Verwenden Sie nun diese Anmerkungen, um Ihre JavaWeb-Entwicklung zu vereinfachen.