我有以下实体类(在Groovy中):
import javax.persistence.Entity
import javax.persistence.Id
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
@Entity
public class ServerNode {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id
String firstName
String lastName
}
和我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="NewPersistenceUnit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Icarus"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="create"/>
</properties>
<class>net.interaxia.icarus.data.models.ServerNode</class>
</persistence-unit>
</persistence>
和脚本:
import javax.persistence.EntityManager
import javax.persistence.EntityManagerFactory
import javax.persistence.Persistence
import net.interaxia.icarus.data.models.ServerNode
def factory = Persistence.createEntityManagerFactory("NewPersistenceUnit")
def manager = factory.createEntityManager()
manager.getTransaction().begin()
manager.persist new ServerNode(firstName: "Test", lastName: "Server")
manager.getTransaction().commit()
数据库 Icarus 存在,但当前没有表。我希望Hibernate基于实体类自动创建和/或更新表。我将如何完成?
我不知道离开hibernate
前线是否会有所作为。
该参考表明,它应该是hibernate.hbm2ddl.auto
值为create
将会在创建sessionFactory时创建您的表,并保持它们不变。
值为create-drop
会创建您的表,然后在关闭sessionFactory时将其删除。
也许您应该javax.persistence.Table
显式设置注释?
希望这可以帮助。
问题内容: 我有以下实体类(在Groovy中): and my persistence.xml: and the script: 数据库Icarus存在,但当前没有表。我希望Hibernate基于实体类自动创建和/或更新表。我将如何完成? 问题答案: 我不知道离开前线是否会有所作为。 该参考表明,它应该是 值为将会在创建时创建表,并保持它们不变。 值为会创建你的表,然后在关闭sessionFact
问题内容: 我们的数据模型分为两个数据库上的架构。这些模式是隔离使用的,除了在两者之间桥接的一些单键关系。没有跨两个数据库的写事务。 与这个问题类似,我们要使用Hibernate在不同数据库中的2个表上进行联接,我们想使用Hibernate来处理实体的联接。我们不能使用数据库解决方案(DB2上的联合视图)。 我们为Hibernate设置了两个单独的数据库配置(“医生”和“病人”),当使用DAO显式
本文向大家介绍C#实现根据实体类自动创建数据库表,包括了C#实现根据实体类自动创建数据库表的使用技巧和注意事项,需要的朋友参考一下 .Net新手通常容易把属性(Property)跟特性(Attribute)搞混,其实这是两种不同的东西 属性指的类中封装的数据字段;而特性是对类、字段、方法和属性等元素标注的声明性信息 如下代码(Id、Name为User的属性,[DbKey]为Id的特性) 特性分预定
问题内容: 能否请您告诉我,我如何才能很好地为Hibernate实体启用Spring自动装配? 假设我有一个实体,并希望在那里有邮件发送者: 有没有比做的更好的方法 在我的DAO中? 谢谢! 问题答案: 有可能的!(这是Spring Roo中的默认样式!) 您所需要做的就是将@Configurable批注添加到您的实体。在配置中并使用AspectJ编织激活注释。 Spring参考中有一章:7.8.
问题内容: 我正在使用Java 2 ee开发Web应用程序。我也使用hibernate和MySQL。为了还原备份文件,在我的应用程序中的某个点上,我需要删除当前数据库并重新创建它,我按如下操作: 删除并重新创建后,我需要使用默认用户(Spring Security用户)初始化数据库 但在最后一行应用程序抛出此异常 我知道hibernate在启动时会创建表,但是在这种情况下,它在drop / rec
我正在使用从数据库中获取一些数据。如果我使用,我的resultset是一个类的列表,这是需要的。 如果我没有获取整行内容,我如何让自动创建实体?