如何配置Hibernate,使其将bean映射到一些现有的表?
附注:每个表都应该对应一个实体。
编辑:这是我如何使用Hibernate处理自动生成的表(取自web应用程序)。我仍然不清楚如何转换到某些显式映射。
实体bean示例
@Entity
@Table(name = "t1_category")
// PK is replaced by Long
// See generic definition in abstract class
public class Category extends BaseEntity<Long> {
@Column(name="check_rsv")
private String check;
@Column(unique = true)
private String name;
private static final long serialVersionUID = 1L;
public String getCheck() {
return this.check;
}
public void setCheck(String check) {
this.check = check;
}
public String getName() {
return this.name;
}
public void setName(String title) {
this.name = title;
}
}applicationContext.xml/Spring
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:annotation-config />
<context:component-scan base-package="***" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="myPersistenceUnit" />
</bean>
<!-- Transaction manager for a single JPA EntityManagerFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory"/>
<tx:annotation-driven/> <!-- This apparently scans for annotations from the base-package value -->
</beans>Persistence.xml
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="myPersistenceUnit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/***?autoReconnect=true"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.password" value="***"/>
<property name="hibernate.connection.username" value="***"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
</properties>
</persistence-unit>
</persistence>发布于 2011-05-10 12:10:27
(“填写”是什么意思?将bean映射到表?然后:)
老方法:为每个表/实体创建Hibernate *.hbm.xml。没什么特别的,过去就是这么做的。
新方法:创建bean,用Hibernate注释标记它们。
新方法:使用JPA注释进行可移植映射,使用Hibernate作为JPA实现。
发布于 2011-05-10 12:41:44
Hibernate注释允许您指定表名和列名。我添加了批处理大小和缓存选项作为额外选项,但这不是您的问题所必需的。
@Entity
@Table(name="BLAH")
@BatchSize(size=20)
@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL)
public class Blah{
@Id
protected String theID;
@Column(name="MEH")
protected int meh;
}看看@Table @Column @Index中的所有选项以及一对多等人的@JoinColumn选项。关系。
https://stackoverflow.com/questions/5944970
复制相似问题