Tag: hibernate

HHH000302:无法构造当前会话上下文

我正面临着hibernate 4.3.5.Final和spring mvc 4.0.4.RELEASE与maven的错误。 有一些jar子将从maven reposterty取出,一些jar子直接包含jar子。 我不是关于spring和冬眠的版本请给我解决方案 ERROR: org.hibernate.internal.SessionFactoryImpl – HHH000302: Unable to construct current session context [org.springframework.orm.hibernate4.SpringSessionContext] java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.hibernate.internal.SessionFactoryImpl.buildCurrentSessionContext(SessionFactoryImpl.java:1513) at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:532) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928) at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:189) at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:350) at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:335) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) […]

使用java,hibernate web应用程序一次限制用户登录单个会话而不使用spring

我正在使用Java,Hibernate和JSF开发Web应用程序。 我希望用户限制只登录到单个会话,即如果用户已经登录,我也不希望在不注销第一个会话的情况下从其他位置登录。 任何人都可以帮助我们知道如何实现这一目标。 根据我的要求,我不能使用弹簧或其任何function。

在Hibernate中保护实体免于级联删除

简单的问题:有没有人有任何想法如何保护某些实体在运行时在hibernate 中通过CascadeType.ALL删除(可能会抛出运行时exception)? 说,我们有一些实体: @Entity @Table(name = “FOO_ENTITY”) public class FooEntity { … } 我想保护它免受意外的错误映射,例如: @Entity @Table(name = “SOME_OTHER_FOO_ENTITY”) public class SomeOtherFooEntity { … @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = “FOO_ENTITY_ID”) private FooEntity fooEntity; } 因此,应该可以通过session.delete(fooEntityObj)删除某个类型为FooEntity实体,但必须禁用它才能通过级联删除删除它( session.delete(someOtherFooEntityObj) )。 注意 :对于那些读我的问题不专心或认为我不明白我在问什么的人: 1)我无法删除 CascadeType.ALL 。 问题是:谁编程避免和保护这个? 2)unit testing不是方法,我正在寻找运行时解决方案。

Hibernate @Transactional Sessions

对不起,我再说一遍这里的问题了。 我有Transactional注释的问题。 我有类,接口Dao,DaoImpl和Service,ServiceImpl。 这是我的conf文件 <!– –> classpath:/config.properties classpath:/jdbc.properties <!– –> classpath:hibernateConfig.xml org.hibernate.cfg.AnnotationConfiguration org.hsqldb.jdbcDriver true org.hibernate.dialect.MySQLInnoDBDialect UTF-8 thread true 当我将@Transactional注释放到DaoImpl时,所有测试都可以正常工作,Maven编译我的应用程序。 但是当我将它部署到Tomcat并尝试使用浏览器中的Dao方法时,我有Stack Trace。 org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63) org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622) com.dataart.masternoy.dao.imp.UserDAOImpl.existUserByLoginEmail(UserDAOImpl.java:35) com.dataart.masternoy.service.imp.UserServiceImpl.existUserByLoginMail(UserServiceImpl.java:44) com.dataart.masternoy.controller.FirstPageController.isValid(FirstPageController.java:46) com.dataart.masternoy.controller.FirstPageController.ConfirmRegister(FirstPageController.java:101) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) […]

GenericJDBCException:无法打开连接..由javax.resource.ResourceException引起:IJ000459:事务处于非活动状态

我的Hibernate应用程序开始运行正常,但在某些时候发生了一些事情(我怀疑一些意外/未处理的约束违规),以某种方式打破了一切。 从那时起,我继续得到这个巨大的堆栈跟踪,我无法阅读….如果我重新启动应用程序,或注销并登录,问题会消失一段时间…… 我找到了一个相关的问题 ,但在评论中被要求为我的问题创建一个新的问题,因为例外是一个非常通用的问题。 下面是一个剪切版本的堆栈跟踪。 在pastebin上的完整堆栈跟踪。 2015-11-05 17:27:39,349 ERROR [io.undertow.request] (default task-11) UT005023: Exception handling request to /api/ratings/synch: org.jboss.resteasy.spi.UnhandledException: javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.GenericJDBCException: Could not open connection at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:76) [resteasy-jaxrs-3.0.10.Final.jar:] … Caused by: javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.GenericJDBCException: Could not open connection at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleInCallerTx(CMTTxInterceptor.java:163) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final] … at net.bridalapp.db.CrudService$$$view1.find(Unknown Source) [classes:] … Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not open connection at […]

Hibernate奇怪地收获clob值

我在两个表之间有一对多的关系。 许多表包含clob列。 clob列在hibernate中看起来像这样: @CollectionOfElements(fetch = EAGER) @JoinTable(name = NOTE_JOIN_TABLE, joinColumns = @JoinColumn(name = “note”)) @Column(name = “substitution”) @IndexColumn(name = “listIndex”, base = 0) @Lob private List substitutions; 所以基本上我可能会注意到一些替换,比如”foo”和”fizzbuzz” 。 所以在我的主表中我可以有一个带有id 4的Note,在我的NOTE_JOIN_TABLE我会有两行, “foo”和”fizzbuzz” ,它们都与Note有关系。 但是,当其中一个插入DB时,较大的替换值被裁剪为与最短的一样长。 所以在这种情况下,我会在DB中使用”foo”和”fizzbuzz”而不是”foo”和”fizzbuzz” 。 你知道为什么会这样吗? 我已经检查并确认它们没有被我们的代码中的任何地方裁剪,它是彻底的hibernate。

春季默认@Transactional和默认的丢失更新

在spring的环境中有一个大的现象,或者我非常错误。 但默认的spring @Transactional注释不是ACID,只有ACD缺乏隔离。 这意味着如果你有方法: @Transactional public TheEntity updateEntity(TheEntity ent){ TheEntity storedEntity = loadEntity(ent.getId()); storedEntity.setData(ent.getData); return saveEntity(storedEntity); } 如果2个线程以不同的计划更新进入,会发生什么。 它们都从db加载实体,它们都应用自己的更改,然后第一个被保存并提交,第二个被保存并提交第一个UPDATE IS LOST。 那是真的吗? 使用调试器它就是这样工作的。

如何使用Spring来管理与多个数据库的连接

我已经阅读了其他主题,但没有找到一个好的和明确的答案 我正在尝试开发一个能够: 1)在单独的UI数据库中记录/跟踪用户事件,我们通过hibernate与相同的数据库模式连接(可能将connectionString保存到不同的oracle数据库) 2)在运行时,当您登录时,您可以选择一个环境来连接到具有相同模式(但不是相同数据)的三个不同oracle数据库之一 3)使用用户名和密码提供正确的DataSource(从哪里获取这些敏感数据?我不会将其保存在应用程序的某处) 我是Spring框架的新手。 我发现这个链接可能是第一个领导。 有什么建议么? 还使用Spring 3.1或3.2,JDBC查询我的oracle数据库和hibernate映射到我的UI数据库。 这听起来很混乱所以我有一张照片: 基础设施

Hibernate中对所有表的所有查询的通用条件限制

我已经在hibernate中为我的项目编写了很多查询。 现在我的要求已经改变,我在MySql中的所有表中都添加了一个新的列名ACTIVE。 我无权拒绝添加ACTIVE列。 ACTIVE字段可以保存值true或false,我也必须将其添加到条件中。 所以,我一直在想是否有一种方法可以在Hibernate中添加一个标准限制,这对我所做的所有查询都是通用的,而不是为我所做的每个查询都设置标准? 编辑:我想有点误会,对不起,我在打字时很着急。 某些其他用户已将ACTIVE列设置为true或false。 我需要的是一个全局过滤,仅针对我发出的每个查询的ACTIVE列为true的记录。 像这样的东西,但我希望hibernate为我发出的每个查询添加ACTIVE =’true’filter, select name from table where and ACTIVE=’true’ 希望有意义。 感谢致敬, Sunayan Saikia

如何使用Hibernate为Spring数据JPA的所有查找方法添加全局where子句?

我们正在使用Spring数据JPA和hibernate开发Web应用程序。 在应用程序中,每个实体都有一个compid字段。 这意味着每个数据库调用(Spring Data方法)都必须使用compid进行检查。 我需要一种方法,这个“compid =?” 检查每个查找方法是否自动注入。 因此,我们不必特别打扰编译检查。 这可能是从Spring Data JPA框架实现的吗?