【发布时间】:2014-07-05 05:37:00
【问题描述】:
问题:
JDBC 表何时以及如何创建? 因为奇怪的是我找不到任何用户表。 我觉得奇怪的是有一个用于 User 和 Dish 之间的多对多关系的表,但没有用户表来存储该用户的名称和密码。
结构:
- 用户:
String nameString passwordList<Dish> shoppingList
- 成分:
String name
- 成分数量:
Ingredient ingredientQuantity quantity
- 数量:
int quantityString unit
- 菜:
String nameint peopleCollection<IngredientQuantity> ingredients
JDBC:
持久化单元:
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="ShoppingCalendarPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>domain.Dish</class>
<class>domain.Ingredient</class>
<class>domain.User</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/ShoppingCalendarDB"/>
<property name="javax.persistence.jdbc.password" value="app"/>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="javax.persistence.jdbc.user" value="app"/>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
【问题讨论】:
-
可能架构是在早期应用程序部署期间创建的,并且与当前实体不一致?也许你最好删除表,使用 javax.persistence.schema-generation.create-script-source 并检查 sql-script?
-
不,我删除了表格并重新运行了代码。还是一样。
-
User实体的配置表名是什么?用户是保留的 SQL 关键字。确保使用“USER”以外的其他名称作为表名。
标签: java jdbc persistence persistence-unit