簡體   English   中英

Eclipselink:persistence.xml連接到derby glassfish本地主機數據庫(創建並填充數據庫)

[英]Eclipselink: persistence.xml connect to derby glassfish localhost database (create and populate database)

我需要使用eclipselink連接到本地derby數據庫(在glassfish 4中)。 我想從類或sql腳本生成數據庫。 在persistence.xml文件中,我有:

  <persistence-unit name="chapter04PU" transaction-type="JTA">
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
     <class>org.agoncal.book.javaee7.chapter04.Book</class>
     <properties>
     <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
     <property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create"/>
     <property name="javax.persistence.schema-generation.scripts.create-target" value="chapter04Create.ddl"/>
     <property name="javax.persistence.schema-generation.scripts.drop-target" value="chapter04Drop.ddl"/>
     <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
     <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/chapter04DB;create=true"/>
     <property name="javax.persistence.jdbc.user" value="APP"/>
     <property name="javax.persistence.jdbc.password" value="APP"/>
     <property name="javax.persistence.sql-load-script-source" value="insert.sql"/>
     <property name="eclipselink.logging.level" value="INFO"/>
     </properties>

我可以使它工作。 以上持久性單元是正確的。 假設Entity Book類中的id具有以下注釋:@Id @GeneratedValue private Long id;

具有以下持久性單元:

   <persistence-unit name="Book"  transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
     <class>com.tutorial.Book</class>
      <properties>
       <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
       <property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create"/>
       <property name="javax.persistence.schema-generation.scripts.create-target" value="create.ddl"/>
       <property name="javax.persistence.schema-generation.scripts.drop-target" value="drop.ddl"/>
       <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
       <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/library_db;create=true"/>
       <property name="javax.persistence.jdbc.user" value="APP"/>
       <property name="javax.persistence.jdbc.password" value="APP"/>
       <property name="javax.persistence.sql-load-script-source" value="insert.sql"/>
       <property name="eclipselink.logging.level" value="INFO"/>
   </properties>

如下腳本:

create.ddl ----------------------------------------------- -------------

CREATE TABLE book (
    ID BIGINT NOT NULL,
    DESCRIPTION VARCHAR(255),
    ILLUSTRATIONS SMALLINT DEFAULT 0,
    ISBN VARCHAR(255),
    NBOFPAGE INTEGER,
    PRICE FLOAT,
    TITLE VARCHAR(255),
    PRIMARY KEY (ID))

CREATE TABLE SEQUENCE (
    SEQ_NAME VARCHAR(50) NOT NULL,
    SEQ_COUNT DECIMAL(15),
    PRIMARY KEY (SEQ_NAME))

INSERT INTO SEQUENCE(SEQ_NAME, SEQ_COUNT) values ('SEQ_GEN', 0)

drop.ddl ----------------------------------------------- ---

DROP TABLE book

DELETE FROM SEQUENCE WHERE SEQ_NAME = 'SEQ_GEN'

insert.sql ----------------------------------------

INSERT INTO BOOK(ID, TITLE, DESCRIPTION, ILLUSTRATIONS, ISBN, NBOFPAGE, PRICE)
values (1000, 'Beginning Java EE 6', 'Best Java EE book ever', 1, '1234-5678', 450, 49)

INSERT INTO BOOK(ID, TITLE, DESCRIPTION, ILLUSTRATIONS, ISBN, NBOFPAGE, PRICE)
values (1001, 'Beginning Java EE 7', 'No, this is the best ', 1, '5678-9012', 550, 53)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM