0

使用 JDBC,我可以使用 String 来创建表的模式:

String sql = "CREATE TABLE REGISTRATION " +
               "(id INTEGER not NULL, " +
               " first VARCHAR(255), " + 
               " last VARCHAR(255), " + 
               " age INTEGER, " + 
               " PRIMARY KEY ( id ))"; 
stmt = conn.createStatement();
stmt.executeUpdate(sql);

有没有办法使用字符串在 JPA2 中指定一个表?

编辑:

如果不清楚:我的意思是不要创建一个@Entity类来表示我的表。String我想使用JDBC.

4

2 回答 2

1

不。JPA 不提供任何方法来定义表(或非关系数据库中的相应事物)。

JPA 通过实体类处理数据组织的规范;您编写和注释对数据建模的类。然后,JPA 提供者可能会提供一些方法来设置底层存储以匹配实体,但这不是标准化的。

于 2012-12-30T02:47:04.257 回答
0

我不确定您是否可以通过代码执行此操作。如果不存在,则无法创建表。大多数应用程序使用现有的数据库。

您可以使用可以为您创建模式的 eclipseLink(如果您使用)。阅读此页面EclipseLink/Examples/JPA/DDL以了解如何启用此功能

您需要在您的persistence.xml

<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<property name="eclipselink.create-ddl-jdbc-file-name"
     value="createDDL_ddlGeneration.jdbc"/>
<property name="eclipselink.drop-ddl-jdbc-file-name" 
       value="dropDDL_ddlGeneration.jdbc"/>
于 2012-12-30T02:41:30.547 回答