总是在一些小问题上跌倒。
最近做单DAO服务类,在测试的时候,为了简单,采用hibernate.hbm2ddl.auto自动生成表,但我发现不管是update还是create都没有在数据库中建立表,这太不应该了,经过几番周折,发现问题所在:
这是建立order表不成功的POJO:
@Entity
public class Order {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private Date createDate;
@OneToMany(targetEntity=Item.class, mappedBy="order", cascade=CascadeType.ALL)
private Set<Item> items;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Set<Item> getItems() {
return items;
}
public void setItems(Set<Item> items) {
this.items = items;
}
}
改过后建立order表成功的POJO:
@Entity
[b]@Table(name="ORDER", schema="hibernate")[/b]
public class Order {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
[b]@Column(nullable=false, unique=true)[/b]
private int id;
private Date createDate;
@OneToMany(targetEntity=Item.class, mappedBy="order", cascade=CascadeType.ALL)
private Set<Item> items;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Set<Item> getItems() {
return items;
}
public void setItems(Set<Item> items) {
this.items = items;
}
}
希望能给遇到同样问题的朋友提个醒
分享到:
相关推荐
详解hibernate.hbm2ddl.atuo 属性的配置
《hibernate.hbm.xml详解》 在Java的持久化框架Hibernate中,`hibernate.hbm.xml`文件是至关重要的,它定义了Java对象与数据库表之间的映射关系,使得对象模型能够与关系型数据库无缝对接。这篇文章将深入解析`...
hibernate.queries.hbm.xml这个文件需要放在jbpm*(版本).jar中。。的org.jbpm.db目录下,先删除以前的文件,然后,换上共享中这个。。大家可以用文件比较器看看,并没有改变以前的,只是新加了。。
hbm2ddl是Hibernate提供的一个自动化数据库建模工具,它可以将Hibernate的映射文件(.hbm.xml)转换为数据库的DDL(Data Definition Language),用于创建或更新数据库表结构。这大大节省了手动编写SQL脚本的时间,...
首先,我们要关注的关键配置项是`hibernate.hbm2ddl.auto`。这个属性决定了Hibernate在启动时如何处理数据库的元数据,即表结构。以下四个值是它可能的取值: 1. **update**:这是最常用的设置,当设置为`update`时...
Hibernate常用操作示例,包含详细注释说明,数据库初始化文件。使用和学习请参考:http://blog.csdn.net/daijin888888/article/details/51692942
部署时,可修改web-inf/config/spring/applicationContext.xml文件,修改相应的数据库信息,把把<prop key="hibernate.hbm2ddl.auto">update 改为<prop key="hibernate.hbm2ddl.auto">create即可自动创建表 我自己写的...
<property name="hibernate.hbm2ddl.auto">create ``` 这样,每当应用程序启动时,Hibernate都会检查`User`实体类并自动创建名为`users`的表。 2. **更改实体类**:如果我们决定为`User`实体添加一个新的字段`...
2.修改applicationContext.xml文件中hibernate.hbm2ddl.auto的值为create而不是update 3.修改数据库的连接信息(数据库,用户名,密码) 4.部署到Tomcat服务器上面,然后运行 5.在浏览器中输入...
怎样运用Hibernate hibernate.dialect=org.hibernate.dialect.SQLServerDialect hibernate.connection.driver_class=... hibernate.hbm2ddl.auto=create hibernate.show_sql=true
5. **hibernate.hbm2ddl.auto**:此属性决定了Hibernate在启动时如何处理数据库模式。例如,`create`表示每次启动时都创建新表,`update`则更新已有表结构,`validate`验证表结构是否匹配,`none`则不做任何操作。 ...
这个属性用于指定类路径下具体的Hibernate映射文件(.hbm.xml)。例如,如果我们有一个名为`petclinic.hbm.xml`的映射文件,我们可以这样配置: ```xml <value>petclinic.hbm.xml ``` 这种方式只能处理单个...
3. **Hbm2ddl.auto**: 这个属性决定了 Hibernate 如何自动管理数据库的元数据。有以下几种模式: - `create`: 每次启动应用时,Hibernate 会删除现有的表并重新创建它们,这会导致数据丢失。 - `update`: ...
<value>com/example/Entity2.hbm.xml</value> ``` 在这里,我们使用了Spring的PropertyPlaceholderConfigurer来解析`hibernate.properties`中的属性,并注入到`LocalSessionFactoryBean`的配置中。`...
`.hbm.xml`文件用于映射数据库表和Java类之间的关系,而`hibernate.cfg.xml`则是Hibernate的整体配置文件,包含了数据库连接、事务管理等核心设置。 ** Hibernate基础知识 ** Hibernate是一款流行的Java持久化框架...
#hibernate.hbm2ddl.auto create-drop #hibernate.hbm2ddl.auto create #hibernate.hbm2ddl.auto update #hibernate.hbm2ddl.auto validate ## specify a default schema and catalog for unqualified tablenames ...
<property name="hibernate.hbm2ddl.auto">update <property name="hibernate.default_schema">my_schema <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect ... </hibernate-...
需要注意的是,`hibernate.hbm2ddl.auto`的自动操作是基于映射文件(.hbm.xml或注解)的,因此当你的实体类(model)发生变化时,你需要确保数据库已经同步更新了这些变更。否则,如果你在实体类中添加了新的字段而...
总共有2个版本,根据自己的需求使用版本3或者5: 1. hibernate-tools-3.4.0.CR2.jar是修改完成的jar包,直接替换原来的jar包, 重启eclipse即可生效(插件包所在路径是:D:\eclipse\plugins\org.hibernate.eclipse....
<mapping resource="com/example/model/User.hbm.xml"/> ``` 这表示`User.hbm.xml`文件定义了`User`类的数据库映射。 数据库驱动是连接Java应用程序与特定数据库的关键组件。在上述配置中,`hibernate....