我希望JPAContainer在'hbm2ddl.auto'设置为'update'时自动创建数据库表,但是情况似乎并非如此。我的配置有什么问题,或者我应该使用其他东西来获得所需的功能吗?
我使用以下命令创建JPAContainer
accounts = JPAContainerFactory.make(Account.class, RumUI.PERSISTENCE_UNIT);
Accounts类是
@Entity
@Table(name="accounts")
public class Account implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
private Long id;
@NotNull
@Size(min = 2, max = 24)
@Column(name = "name", unique=true)
private String name;
@NotNull
@Email
@Column(name = "email")
private String email;
@NotNull
@Size(min = 2, max = 24)
@Column(name = "password")
private String password;
@NotNull
@Column(name = "role")
private String role;
public Account() {
}
//getters and setters
}
和persistence.xml
<persistence-unit name="RuM">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>ee.ut.cs.rum.domain.Account</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.connection.url" value="jdbc:postgresql://127.0.0.1:5432/RuM"/>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
<property name="hibernate.connection.username" value="postgres"/>
<property name="hibernate.connection.password" value="postgres"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="update"/>
<property name="hibernate.current_session_context_class" value="thread" />
</properties>
</persistence-unit>
我希望自“hbm2ddl.auto”设置为“update”后,将自动创建数据库表'accounts'。但是,表格未创建。
如果我使用相同的设置(使用Configuration对象)直接创建Hibernate ServiceRegistry和SessionFactory,则会创建表。
我在这里缺少什么?
答案 0 :(得分:0)
@Entity @table(名称=&#34; t_accounts) 公共课Accout ......
答案 1 :(得分:0)
org.hibernate.ejb.HibernatePersistence 你可以试试这个提供者