Tag: 冬眠

用Hibernate + Spring进行caching – 一些问题!

我正在开发与Spring 3和Hibernate 3.6的Web应用程序。 目前我尝试了解如何使用Spring和Hibernate进行caching。 我发现一些关于Hibernate的caching和Spring的一些资料,现在我试着把我的信息整合在一起。 我仍然对这两个框架都有一些问题,如果有人能回答他们,或者告诉我这里列出的事实是否正确,我会很高兴。 大多数情况下,简短的答案(是/否)就足够了。 我认为这个列表对其他人也是有用的,他们想了解如何使用spring和hibernate进行caching。 General 1) Hibernate支持以下caching:1级caching,2级caching,查询caching 2) Spring本身支持以下caching可能性:只是方法caching 1st Level Cache 3)第一级caching是每个Hibernate应用程序的一部分。 4)第一级caching是为每个hibernate会话创build的。 5)什么是保存在一级caching? 对象还是其属性的值? 查询和他们的结果? 2nd Level Cache 6)我发现:二级caching每个应用程序使用一次。 这不是假的吗? 是不是每个sessionfactory使用一次? 和:多个sessionfactorys =多个二级caching可能? 7)在二级caching中保存的内容:在我看来,只是属于一个logging的值,而不是对象本身。 8)当从二级caching中的一条logging存储值时,它可能存储相关的值(从通过外键连接的对象)呢? 9)在更新二级caching中的一个对象的值时,是否有可能更新caching中与它连接的对象的值呢? 10)当一个对象的值正在改变时,如何更新二级caching? 冲洗? 我可以只更新caching的一部分,或者必须更新整个caching吗? 11)第二级caching在哪里是有意义的,在哪里呢? 12)caching模式:每种caching模式是否提供了不同的caching策略? 例如使用caching模式“只读”,数据库和caching的同步是不必要的? 做其他caching模式提供同步? 我认为同步必须由开发人员自己完成? Query Cache 13)查询caching与二级caching有什么区别? 在我看来:在查询caching结果集保存,但不是与他们的价值,只是与他们的ID。 当再次使用查询并且结果集仍然是“正确的”时,属于id的值从二级caching中查询 14)对于查询caching,必须使用二级caching? 15)查询caching在哪里是合理的,哪里没有? Spring 16) Spring是否比方法caching提供更多的caching可能性? 17)方法caching没有链接到hibernatecaching 18)但是:对于方法caching第二级是必要的,如ehcache(它也可以用于hibernate) 19)可以使用方法caching没有数据库查询? Getting mixed […]

在hibernate中将枚举映射到string

我有一个类Hibernate模型: @Entity @Table(name = "category") public class Category { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id") private long id; @Column(name = "type") private String type; 其中有一个stringtypes字段。 另外我有一个Java枚举代表一个类别的types: public enum CategoryType { INCOME, OUTCOME; } 我想用来代替stringtypes。 SQL在varchar参数中接受两个不同的值: CategoryIncome或者CategoryOutcome 。 我希望类模型类接受一个枚举variables – 并将其映射到string,每当hibernate请求它。 可能吗?

不区分大小写等于使用Hibernate标准

我已经看到了Restrictions.ilike('property','%value%'),但是想生成如下所示的SQL:lower(property)='value'。 有任何想法吗? 我用了: Restrictions.eq("email", email).ignoreCase() 因为expression式已被弃用。 SimpleExpression将调用toLowerCase()的值,所以没有必要事先做。 请参阅: SimpleExpression源代码

没有匹配的types的bean …发现依赖

经过几天的尝试,并在springource论坛上等待的答案,我会在这里尝试。 运行我的应用程序导致这些exception: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.example.my.services.user.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924) org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793) org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) javax.servlet.GenericServlet.init(GenericServlet.java:212) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) […]

在Hibernate 4中创build会话工厂

我在Hibernate 4中生成会话工厂时遇到了麻烦。在Hibernate 3中我简单的做了: org.hibernate.cfg.Configuration conf= HibernateUtil .getLimsInitializedConfiguration(systemConfiguration .getHibernateconfFile()); SessionFactory sf = conf.configure().buildSessionFactory(); 现在我需要将ServiceRegistry类传递给buildSessionFactory,但是Javadocs对于如何去做这件事非常模糊。 有小费吗?

为什么不build议使用HibernateDaoSupport?

我最近在Hibernate 3.5和Spring 3上做了一些工作,对于Hibernate来说我是相当新的,并且认为Spring中的HibernateDaoSupport类使得Hibernate和我的领域类很好很容易使用。 然而,在search一个不相关的问题时,我看到有人提到HibernateDaoSupport不是使用Spring和Hibernate的最佳方法。 任何人都可以阐明: 为什么不推荐? 什么是最好的(或至less被接受)的方式来整合Hibernate和Spring?

什么是好的博客阅读有关java,spring,hibernate,maven?

继续质疑我对博客更感兴趣,网站偶尔发布一个教程,提示或最好的练习,我提到的话题。 例如: http : //net.tutsplus.com/是非常好的网站,如果你想了解或升级你的知识,关于CSS,HTML,Javascript,PHP ..是否有这样的网站这样的Java和相关的技术?

当使用hibernate的标准查询时,你如何“或”标准呢?

我试图做一个基本的“或”在三个领域使用hibernate条件查询。 例 class Whatever{ string name; string address; string phoneNumber; } 我想build立一个标准查询,我的searchstring可以匹配“名称”或“地址”或“phoneNumber”。

hibernate问题 – “使用@OneToMany或@ManyToMany定位未映射的类”

我正在用Hibernate Annotationsfind自己的脚,我碰到了一个问题,我希望有人能帮上忙。 我有2个实体,Section和ScopeTopic。 Section有一个List类成员,所以是一对多的关系。 当我运行我的unit testing时,我得到这个exception: 使用@OneToMany或@ManyToMany定位未映射的类:com.xxx.domain.Section.scopeTopic [com.xxx.domain.ScopeTopic] 我会假设错误意味着我的ScopeTopic实体没有映射到表? 我看不到我做错了。 这里是实体类: @Entity public class Section { private Long id; private List<ScopeTopic> scopeTopics; public Section() {} @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } @OneToMany @JoinTable(name = "section_scope", joinColumns = {@JoinColumn(name="section_id")}, inverseJoinColumns = {@JoinColumn(name="scope_topic_id")} ) public List<ScopeTopic> […]

Hibernate错误 – QuerySyntaxException:用户未映射

我试图从“用户”表中获得所有用户的列表,我得到以下错误: org.hibernate.hql.internal.ast.QuerySyntaxException: users is not mapped [from users] org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180) org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110) org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93) 这是我写的添加/获取用户的代码: public List<User> getUsers() { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); List<User> result = (List<User>) session.createQuery("from users").list(); session.getTransaction().commit(); return result; } public void addUser(User user) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.save(user); session.getTransaction().commit(); } public void addUser(List<User> users) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); for […]