2011-11-14 94 views
4

我想將我的Java應用程序部署到Heroku,我使用的是eclipse鏈接JPA。從eclipse鏈接創建數據庫鏈接JPA實體

要做到這一點,我需要通過Java創建表,到目前爲止我已經得到了下面的代碼,但是如何獲得DDL來創建表。我將在MySQL上運行應用程序進行開發,Heroku是Postgres for production。因此,我希望create table語句考慮到這一點。

import javax.persistence.*; 

public class SchemaCreator 
{ 
    public static void main(String[] args) 
    { 
    EntityManagerFactory factory = 
    Persistence.createEntityManagerFactory("bitcoin"); 
    EntityManager em = factory.createEntityManager(); 

    String ddl = /// <--- How do I get it ? 

    em.createNativeQuery(ddl); 
    } 
} 
+0

你想創建基於你的實體的數據庫表或生成DDL查詢來創建數據庫(並在別處使用它)? –

+0

http://stackoverflow.com/questions/779479/reverse-engineer-ddl-from-jpa-entities – madth3

+0

我想能夠創建表格形式的Java可執行文件。我不必手動編寫SQL語句。 –

回答

12

好的,我想通了。

如果我添加以下entried我的persistence.xml

<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> 
<property name="eclipselink.ddl-generation.output-mode" value="database"/> 

後來,當我第一次訪問實體,如果它不是已經在一個表將要創建的dataabse。