Tag: hibernate

Hibernate或JDBC

我有一个厚实的客户端,java swing应用程序,包含25个表格和〜15个JInternalFrames(表格的数据input表格)。 我需要为DBMS交互做直接的JDBC或ORM(在这种情况下用spring框架的hibernate)的deviseselect。 将来会发生出应用程序。 冬眠会为这个大小的项目矫枉过正吗? 对“是”或“否”的解释的解释将是非常赞赏的(甚至如果需要,甚至是不同的方法)。 TIA。

控制hibernate会话(手动closures时)

我是hibernate的新手,在阅读完hibernate api和tutorial后,似乎session不用的时候应该closures。 喜欢这个: Session sess=getSession(); Transcration tx=sess.beginTranscration(); //do something using teh session sess.save(obj); tx.commit(); sess.close; 在独立应用程序中使用它时,我毫无疑问。 但是我不确定什么时候在web应用程序中使用。 例如,我有一个Servlet: TestServlet从客户端接收参数,然后我调用pipe理器根据参数来查询某些内容,就像这样: class TestServlet{ doGet(HttpServletRequset,httpServletResponse){ String para1=request.getParam…(); String para2=….. new Manager().query(para1,para2); } } class Manager{ public String query(String pa1,String pa2){ Session=….// get the session //do query using para1 and 1 session.close() //Here, I wonder if I should close […]

Hibernate与iBATIS

对于我们的新产品重新devise,我们正在从Java中select最好的框架。 考虑到模型的数据库不可知的方法,我们正在研究Struts + Spring与iBATIS或Hibernate之间的选项。 请build议这是最好的,因为两者都提供持久性。

closureshibernate日志logging控制台输出

我正在使用hibernate3并希望停止将所有启动消息转储到控制台。 我试着注释log4j.properties中的标准输出行,但没有运气。 我在下面粘贴了我的日志文件。 另外,我使用eclipse与标准项目结构,并在项目文件夹的根目录和bin文件夹中都有一个log4j.properties的副本。 ###将日志消息直接输出到标准输出### #log4j.appender.stdout = org.apache.log4j.ConsoleAppender #log4j.appender.stdout.Target = System.out的 #log4j.appender.stdout.layout = org.apache.log4j.PatternLayout #log4j.appender.stdout.layout.ConversionPattern =%d {ABSOLUTE}%5p%c {1}:%L – %m%n ###将消息直接传给文件hibernate.log ### log4j.appender.file = org.apache.log4j.FileAppender log4j.appender.file.File = hibernate.log log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =%d {ABSOLUTE}%5p%c {1}:%L – %m%n ###设置日志级别 – 更详细的日志logging更改“信息”到“debugging”### log4j.rootLogger =警告,标准输出 #log4j.logger.org.hibernate =信息 log4j.logger.org.hibernate =debugging ###日志HQL查询parsing器活动 #log4j.logger.org.hibernate.hql.ast.AST =debugging ###只loggingSQL #log4j.logger.org.hibernate.SQL =debugging ###日志JDBC绑定参数### log4j.logger.org.hibernate.type =信息 […]

在序列化Hibernate对象时引发奇怪的jacksonexception

jackson抛出一个怪异的例外,我不知道如何解决。 我使用Spring,Hibernate和Jackson。 我已经考虑过懒加载导致的问题,但我已经采取措施,告诉jackson不处理各种属性如下: @JsonIgnoreProperties({ "sentMessages", "receivedMessages", "educationFacility" }) public class Director extends UserAccount implements EducationFacilityUser { …. } 我也为所有其他UserAccount子类做了同样的事情。 这是抛出的exception: org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.ArrayList[46]->jobprep.domain.educationfacility.Director_$$_javassist_2["handler"]) at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62) at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:268) at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:146) at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:118) at org.codehaus.jackson.map.ser.ContainerSerializers$IndexedListSerializer.serializeContents(ContainerSerializers.java:236) at […]

Hibernate的HQL查询:如何将一个集合设置为查询的命名参数?

鉴于以下HQL查询: FROM Foo WHERE Id = :id AND Bar IN (:barList) 我使用Query对象的setInteger()方法设置:id 。 我想设置:barList使用对象List ,但看着Hibernate的文档和方法列表我看不到明显的select使用。 有任何想法吗?

hibernate自动递增ID

我有一个j2ee应用程序使用hibernate注释。 我如何注释我的pojo类中的Id字段将其设置为自动增量或自动生成。 并在添加的豆我离开这个领域在我的豆空?

冬眠4和约达时间

他们幸福地结婚了吗? 我正在使用最新版本的hibernate(4)和joda-time hibernate支持版本1.3,我也认为这是最新版本。 在使用注释时,一切似乎都正常(按预期创builddate列): @Column @Type(type="org.joda.time.contrib.hibernate.PersistentLocalDate") private LocalDate myDate; 他们一起使用这些版本的任何已知的问题? 更新好的结果是列创build,但无法填充任何数据: 处理程序处理失败; 嵌套的exception是java.lang.AbstractMethodError:org.joda.time.contrib.hibernate.PersistentLocalDateTime.nullSafeSet 他们是不相容的,我应该使用usertype 。 见下面的答案。

如何解决hibernate双向映射引起的JSON串行器中的循环引用?

我正在编写序列化程序来将POJO序列化为JSON,但是却陷入了循环引用问题。 在hibernate双向一对多关系中,父类引用子对象和子对象引用,回到父对象,这里我的序列化器就死掉了。 (请参阅下面的示例代码) 如何打破这个循环? 我们可以得到一个对象的所有者树来查看对象本身是否存在于它自己的所有者层次中的某个地方? 任何其他方式来find参考是否将是循环? 或任何其他想法来解决这个问题?

何时以及如何使用hibernate二级caching?

我无法理解何时hibernate命中二级caching,什么时候使caching无效。 这是我目前所了解的: 二级caching在会话之间存储实体,范围是SessionFactory 你必须告诉哪些实体要caching,默认情况下没有实体会被caching 查询caching将查询结果存储在caching中。 我不明白的是 什么时候hibernate打这个caching? 比方说,我已经设置了二级caching,但不是查询caching。 我想caching我的客户,其中有50000个。 用什么方法可以从caching中检索客户? 我假设我可以通过caching中的id来获取它们。 这将是容易的,但也不值得caching。 但是如果我想和我所有的客户做一些计算呢? 比方说,我想显示一个客户名单,那么我将如何访问他们? 如果查询caching被禁用,我将如何获得我所有的客户? 如果有人更新了其中一个客户,会发生什么? 该客户是否会在caching中失效或所有客户都会失效? 或者我认为caching完全错误? 在这种情况下,更适合使用二级caching的是什么? hibernate文档根本不清楚caching是如何工作的。 只有如何build立它的指示。 更新:所以我已经明白,二级caching(没有查询caching)将是好的加载数据的ID。 例如,我有一个用户对象,我想检查Web应用程序中每个请求的权限。 这是通过在二级caching中caching用户来减less数据库访问的好例子吗? 就像我会将用户ID存储在会话或任何地方,当我需要检查权限,我会加载用户的ID和检查权限。