![](/img/trans.png)
[英]Is it possible to use EclipseLink (with persistence.xml) with Embedded Derby
[英]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.