hibernate使用Session对数据库进行增删改查,我们一般会定义一个 POJO实体类,然后通过类似下面的代码,操作实体。
Session session = sessionFactory.openSession();
Student stu = (Student)session.get(Student.class, 1);
Session session = sessionFactory.openSession();
Student stu = (Student)session.get("net.aty.Student", 1);
什么是动态实体呢?hibernate的manual上写道:
Persistent entities do not necessarily have to be represented as POJO classes or as JavaBean objects at runtime.
Hibernate also supports dynamic models (using Maps of Maps at runtime).
With this approach, you do not write persistent classes, only mapping files.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class entity-name="aty_dynamic_model">
<id name="id" type="long" column="ID">
<generator class="native" />
</id>
<property name="name" column="NAME" type="string" />
<property name="address" column="ADDRESS" type="string" />
</class>
</hibernate-mapping>
Session session = sessionFactory.openSession();
session.beginTransaction();
Map<String, String> record = new HashMap<String, String>();
record.put("name", "aty");
record.put("address", "shenzhen");
session.save("aty_dynamic_model", record);
session.getTransaction().commit();
session.close();
这篇博客探讨了Hibernate中实体命名与动态实体的概念。通常,我们在使用Hibernate时会创建POJO实体类来操作数据库。动态实体允许我们在运行时创建和使用不同的实体模型,提供更大的灵活性。
997

被折叠的 条评论
为什么被折叠?



