Hibernate之AbstractEntityPersister

  1. <?xml version=‘1.0‘ encoding=‘utf-8‘?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6. <session-factory>
  7. <!-- Database connection settings -->
  8. <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
  9. <property name="connection.url">jdbc:mysql://localhost:3306/ehome</property>
  10. <property name="connection.username">root</property>
  11. <property name="connection.password">mysql</property>
  12. <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
  13. <property name="current_session_context_class">thread</property>
  14. <property name="show_sql">true</property>
  15. <mapping resource="org/bkgd/ehome/jeeplugin/userapp/domain/HhArticle.hbm.xml" />
  16. </session-factory>
  17. </hibernate-configuration>

HhArticle.hbm.xml 文件在此省略

编写HibernateUtil辅助类 获取sessionFactory

[java] view plaincopy

  1. public class HibernateUtils {
  2. private static final SessionFactory sessionFactory;;
  3. //创建sessionFactory
  4. static {
  5. try {
  6. sessionFactory = new Configuration().configure().buildSessionFactory();
  7. } catch (Throwable ex) {
  8. System.err.println("Initial SessionFactory creation failed." + ex);
  9. throw new ExceptionInInitializerError(ex);
  10. }
  11. }
  12. public static SessionFactory getSessionFactory() {
  13. return sessionFactory;
  14. }
  15. }

测试类

[java] view plaincopy

    1. public class TestPersister {
    2. private static AbstractEntityPersister classMetadata;
    3. private Object obj;
    4. public TestPersister(SessionFactory sessionFatory, Object obj) {
    5. classMetadata = (AbstractEntityPersister) sessionFatory.getClassMetadata(obj.getClass());
    6. this.obj = obj;
    7. }
    8. /**
    9. * @param args
    10. */
    11. public static void main(String[] args) {
    12. //实例化classMetadata   传入sessionFactory和obj对象
    13. TestPersister tp = new TestPersister(HibernateUtils.getSessionFactory(),new HhArticle());
    14. Session session = HibernateUtils.getSessionFactory().getCurrentSession();
    15. session.beginTransaction();
    16. SQLQuery sqlquery = session.createSQLQuery("DELETE FROM " + classMetadata.getTableName());
    17. sqlquery.executeUpdate();
    18. session.getTransaction().commit(); //事务提交
    19. //classMetadata一些其他操作
    20. System.out.println(classMetadata.getTableName());  //表名
    21. System.out.println(classMetadata.getIdentifierPropertyName()); //主键列映射属性
    22. System.out.println(classMetadata.getEntityName()); //对象名称
    23. for(String str:classMetadata.getPropertyNames()){   //非主键属性
    24. System.out.println(str);
    25. }
    26. }
    27. public AbstractEntityPersister getClassMetadata() {
    28. return classMetadata;
    29. }
    30. public void setClassMetadata(AbstractEntityPersister classMetadata) {
    31. this.classMetadata = classMetadata;
    32. }
    33. public Object getObj() {
    34. return obj;
    35. }
    36. public void setObj(Object obj) {
    37. this.obj = obj;
    38. }
    39. }
时间: 2024-10-16 19:04:23

Hibernate之AbstractEntityPersister的相关文章

hibernate开发错误及解决办法

1. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at net.sf.hibernate.cfg.Configuration.(Configuration.java:95) at cn.yuan.xmlparse.base._BaseRootDAO.initialize(_BaseRootDAO.java:49) at cn.yuan.x

JAVA编程常见错误集锦(2)

32, car is not mapped 可能1: 在cfg.xml中没有增加映射的hbm.xml文件在<mapping.../>中 33, 属性没有找到 可能1: hbm.xml文件中的 <property name =""> 有问题, 也许是name的值与对应类中的成员名不一致 34,SQLException: 无当前连接 可能1:在比如创建帐户时没有对相应的方法添加到<list>中去,比如这个没有加入:<value>newAcco

学习hibernate出现的错误--之一(映射对应)

初学习遇见不少关于hibernate的错误,将这些错误一一记录下来. java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.r

实体类与数据库字段的映射常见错误(at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set)

严重: Servlet.service() for servlet springMVC threw exception java.lang.IllegalArgumentException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.refl

Hibernate常见异常

1.数据库编码问题 主要错误信息 WARN: SQL Error: 1366, SQLState: 22001 ... ERROR: Data truncation: Incorrect string value: '\xE5\xB9\xBF\xE5\xB7\x9E...' for column 'addressDetail' at row 1 详细错误 1 Jan 16, 2017 9:40:30 AM org.hibernate.annotations.common.reflection.j

HIBERNATE面试常见问题

1.Hibernate的检索方式 ①导航对象图检索 ②OID检索 ③HQL检索 ④QBC检索 ⑤本地SQL检索 2. Forward与Global-Forward的区别 答:Forward是根据Action return的值找到对应的JSP页.当多个Action共同return同一个值时,可将这个Forward元素写在Global-Forward中. 3.在Hibernate应用中Java对象的状态有哪些? 1临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于Sessi

Hibernate的三种常用检索方式

Hibernate 提供了以下几种检索对象的方式 ¨       导航对象图检索方式:  根据已经加载的对象导航到其他对象 ¨       OID 检索方式:  按照对象的 OID 来检索对象 ¨       HQL 检索方式: 使用面向对象的 HQL 查询语言 ¨       QBC 检索方式: 使用 QBC(Query By Criteria) API 来检索对象. 这种 API 封装了基于字符串形式的查询语句, 提供了更加面向对象的查询接口. ¨       本地 SQL 检索方式: 使用

【Hibernate那点事儿】—— Hibernate应该了解的知识

前言: 最近由于有点时间,就像深入的学习一下Hibernate.之前只是简单的使用,并没领会它的妙处.这里就趁着分享的机会,好好整理一下. 这篇主要讲到了下面几个部分: Hibernate框架 Hibernate发展背景 Hibernate使用介绍 Hibernate Tools安装 Hibernate那些必要的包 首先说一下,这个Hibernate是做什么的.Hibernate官网上面罗列了它的基本框架 我们最常用的应该就是Hibernate ORM了.下面简单的说下几个框架的作用: Hibe

Hibernate学习---第七节:关联关系

一.关联关系一对一外键(双向) 1.实体类,代码如下: package learn.hibernate.bean; import java.util.Date; /** * 持久化类设计 * 注意: * 持久化类通常建议要有一个持久化标识符(ID) * 持久化标识符通常建议使用封装类(例如:Integer 因为基本类型存在默认值) * 持久化类通常建议手动添加一个无参构造函数 (因为有些操作是通过放射机制进行的) * 属性通常建议提供 getter/setter 方法 * 持久化类不能使用 fi