我使用Hibernate已经有一段时间了,而且非常成功。然而,我昨天遇到了一个问题,这里的答案将在将来节省大量调试时间。
我忘了在我的hibernate中添加hibernate映射。新实体的cfg。
当我试图加载这个实体时,我本以为会得到某种运行时异常,但它却什么也没加载,继续运行,好像一切都很好。
我正在使用以下代码加载实体。
protected List<T> findByCriteria(Session session, Criterion... criterion) {
Criteria crit = session.createCriteria(getPersistentClass()); /getPersistentClass returns a Class<T>
for (Criterion c : criterion) {
crit.add(c);
}
return crit.list();
}
我想一个错误,如果我尝试加载一个实体,没有映射在我的hibernate.cfg.
有办法做到这一点吗?
最后,我放弃了hibernate.cfg中的映射,并在为我的SessionFactory构建配置对象时添加了以下方法。
private static void addAnnotatedEntityClasses(Configuration configuration) {
Reflections reflections = new Reflections("com.mypackage");
Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Entity.class);
logger.debug("Adding Hibernate Mapping for: ");
for (final Class<?> clazz : classes) {
logger.debug(clazz.getName());
configuration.addAnnotatedClass(clazz);
}
}
这将在我的项目中查找带有实体注释的所有类,并添加映射。
为了简单起见,这使用了反射库。可在此处找到:
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.9-RC1</version>
</dependency>
您正在j2EE服务器中运行代码。如前一个答案所示,您是否在实体类上使用注释?如果是,请尝试删除实体注释。
我在Kotlin-vertx项目中配置了Hibernate,我设法设置了所有内容,但当我运行HQL查询时,它会输出: 提前谢了。
在web应用程序上,我们使用Spring 3.2和Hibernate 4.1.1,并实现了一个类似插件的架构。插件可以在运行时添加和删除。对于每个模块,我们定义了一个单独的类加载器,并在spring上创建了单独的子应用程序上下文。完整的配置是使用注释完成的,不再需要对beans进行XML配置。 Spring Hibernate配置类 现在的问题是:一些插件包含自己的实体(DAO)类,这些类在运行时
我想映射类主题到主题表。 主题。JAVA 主题。哈佛商学院。xml 冬眠cfg。xml 我正在读取csv文件的内容,并希望使用以下代码将其插入数据库。 管理ata.java 我得到以下错误 线程“main”组织中出现异常。冬眠MappingException:未知实体:组织中的主题。冬眠impl。SessionFactoryImpl。getEntityPersister(SessionFactor
帮助我解决我的问题...当我使用方法时,我在映射方面遇到了问题。 型号:Bus Bus\U id pk号 驱动程序driver_idpk名称 巴士司机bus_idfkdriver_idfk 巴士 驾驶员 1级-驾驶员: 2类-总线公共类BusDAOImpl实现BusDAO{ 我的映射: 主类: } hibernate.cfg 工厂 HibernateUtil: 错误文本:
我正在使用Struts、Spring和Hibernate与mysql&Eclipse Kepler的集成进行在线考试项目。在Registration.jsp页面中提交值时,我试图将这些值存储在同一个数据库中的两个不同的表(user_details,address)中。我可以将它们存储在数据库中,但我不能获取user_id,这是地址表的外键。user_id是user_details表中的主键,除了地
是否可以在不映射一对多关系的情况下设置级联? 我有两个实体: 和 如果我试图删除一个用户,并且存在该用户的任何记录,那么由于外键的原因,它显然会失败。我想在删除用户之前删除该用户的所有记录。我看到两种选择: > 映射s为关系中的,并设置。 在删除用户之前手动删除它们 有没有第三个选项,如何在用户实体中设置无映射记录的级联?