我想从Map(如HashMap)动态保存hibernate上的数据。
String entityname = "table1";
Map<String,Object> myMap;
session.save(entityname, myMap);
我的HashMap有以下信息: {videoResolution = 921600}
但我得到以下错误:
org.hibernate.MappingException: Unknown entity: table1
我的Hibernate配置文件配置为default-entity-mode:
<property name="default_entity_mode">dynamic-map</property>
你可以帮帮我吗?
我已经成立:
Session session = HibernateUtil.getSessionFactory().openSession();
Session ds = session.getSession(EntityMode.MAP);
将地图保存到db vai Hibernate,但我总是得到同样的错误......
谢谢:)
答案 0 :(得分:2)
嗯,Hibernate是一个对象关系映射框架。因此,您需要一个Object(包含要保留的数据)和一个Mapping(用于描述如何将对象的属性放入某些数据库表中以使用它)。
没有办法避免这个基本要求,就像你无论你想要多少都没有Main类就无法运行Java应用程序。
Hibernate documentation非常全面,因此我建议您查看Getting Started指南并进行操作。您还会注意到API session.save要求参数的持久性类(即具有已知映射的类),{{1}不太可能出现这种情况。 }。
答案 1 :(得分:0)
没有对象或映射的Hibernate?我会说你不想要Hibernate - 试试iBatis或直接的JDBC。什么是Hibernate在这里买你? 没有
如果你想要存储在表中的(键,值)对Map,请按以下方式执行:
public interface TableMapper<K extends Serializable, V>
{
Map<K, V> find();
V find(K key);
void save(Map<K, V> m);
void update(Map<K, V> m);
void delete(K key);
}
在Hibernate或iBatis或JDBC或JDO或JPA中实现此接口。它允许您使用带有后备数据存储的Java Map执行CRUD操作。