【发布时间】:2010-07-22 04:09:25
【问题描述】:
谁能告诉我 Hibernate 开发人员为 DAO calass、创建 Single SessionFactory 并通过静态方法重新调整 Session 的 Sesgleton 类、休眠映射文件等命名的命名约定是什么
【问题讨论】:
-
我认为您的问题有一些错别字,请您看一下是否可以澄清或更正一点。
标签: hibernate session naming-conventions
谁能告诉我 Hibernate 开发人员为 DAO calass、创建 Single SessionFactory 并通过静态方法重新调整 Session 的 Sesgleton 类、休眠映射文件等命名的命名约定是什么
【问题讨论】:
标签: hibernate session naming-conventions
这是非常主观的,但这是我使用的:
DAO 类的名称
对于Order 实体,我将OrderDao 用于接口,HibernateOrderDao 用于Hibernate 实现(基于JPA 的实现将是JpaOrderDao 等)。
通过静态方法创建 Single SessionFactory 并重新调整 Session 的类
我使用传统的HibernateUtil(您会在 Hibernate 文档、文献等中找到许多参考资料)。这里是an example。 Caveat Emptor 示例应用程序中有 a more sophisticated version。
名为foo.bar.Foo 的类将由foo/bar/Foo.hbm.xml 文件映射。首先,这使得映射易于组织、查找和易于维护。其次,这允许使用强类型Configuration#addClass(Class) 方法(它是抗重构的)。
【讨论】:
我只能从我相当有限的经验和视角来回答,但我很满意并习惯了我们这样做的方式。通常,我们使用一个名为DatabaseHelper 的抽象类,它有很多静态方法。例子:
DatabaseHelper.getSession() 返回一个Session。两种方法
DatabaseHelper.commitTransaction()
和
DatabaseHelper.beginTransaction() 处理事务。
Bean 没有命名约定,但都扩展了
public abstract class HibernateBean<T> implements Serializable
像这样
@Entity
@Table(name = "table_name")
public class TableEntry extends HibernateBean<TableEntry> {
HibernateBean 包含一些方法,例如 getId(),用于检索 Hibernate 生成的 id。
【讨论】: