gpt4 book ai didi

java - Eclipselink:persistence.xml 连接到 derby glassfish 本地主机数据库(创建并填充数据库)

转载 作者:行者123 更新时间:2023-12-01 13:37:37 25 4
gpt4 key购买 nike

我需要使用 eclipselink 连接到 localhost 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 @GenerateValue 私有(private)长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'

插入.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)

关于java - Eclipselink:persistence.xml 连接到 derby glassfish 本地主机数据库(创建并填充数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21137843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com