ich mache gerade meine ersten erfahrungen mit javaee nd mit jpa im speziellen. nun bin ich im buch "Beginning Java™ EE 6 Platform with GlassFish™ 3: From Novice to Professional" in kapitel 2. dort geht es um ein programm was ein "book" anlegt und in eine db schreibt. das buch sieht so aus:
also wenn man das programm ausführt hat man einen eintrag in der buchtabelle (das buch wird in main angelegt). 2 Fragen hab ich nun:
1. die mainklasse überschreibt immer wieder das eine buch - wieso wird nicht jedesmal ein neues buch angelegt? woher weiß das system das es sich um das selbe buch handelt - durch den variablennamen? oder andersherum: was muss ich machen, damit bei jedem ausführen der main-klasse ein neues buch angelegt wird?
2. was hat es mit der "sequence"-tabelle auf sich? laut buch verwaltet die irgendwie die auto-gen.-id's?! aber jedesmal wenn ich das programm ausführe gibts nen error, dass die tabelle schon existiert:
kann man den error verhindern? oder kann man ihn ignorieren?
Java:
@Id @GeneratedValue
private Long id;
@Column(nullable=false)
private String title;
private Float price;
@Column(length=200)
private String description;
private String isbn;
private Integer nbOfPage;
private Boolean illustrations;
also wenn man das programm ausführt hat man einen eintrag in der buchtabelle (das buch wird in main angelegt). 2 Fragen hab ich nun:
1. die mainklasse überschreibt immer wieder das eine buch - wieso wird nicht jedesmal ein neues buch angelegt? woher weiß das system das es sich um das selbe buch handelt - durch den variablennamen? oder andersherum: was muss ich machen, damit bei jedem ausführen der main-klasse ein neues buch angelegt wird?
2. was hat es mit der "sequence"-tabelle auf sich? laut buch verwaltet die irgendwie die auto-gen.-id's?! aber jedesmal wenn ich das programm ausführe gibts nen error, dass die tabelle schon existiert:
Code:
Internal Exception: java.sql.SQLException: Table/View 'SEQUENCE' ist bereits in
Schema 'APP' vorhanden.
Error Code: -1
Call: CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL(15), PRIMARY KEY (SEQ_NAME))
Query: DataModifyQuery(sql="CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL(15), RIMARY KEY (SEQ_NAME))")
kann man den error verhindern? oder kann man ihn ignorieren?