草庐IT

hibernate-postgresql

全部标签

java - 如何使用 JPA 从 PostgreSQL 读取 bytea 图像数据?

我有PostgreSQL数据库,并且有一个数据类型为“bytea”的列“image”。我无法修改列或数据库配置。JPA注解的POJO包含跟随映射@Column(name="image")privatebyte[]image;返回的数据格式如下(这只是一个示例)WF5ClN6RlpLZ0hJTUdNQ1FJWmkwcFVGSUdNQ0lDWUE5TUEvanRFeElwK2x0M2tBQUFBQVNVVk9SSzVDWUlJPQo=当我将此数据写入文件(.jpeg)时,照片查看器显示“这是损坏的文件”。我也明白实际的图像字节数据看起来与上面的示例不同。我读了一些博客,其中提到Postgr

java - 在 Spring-Hibernate 项目中初始化实体集合 (POJO) 的正确方法是什么?

我有一个POJO类,比如Foo,它有一组其他实体实例,比如bars。此类项目也有标准的杂项类:Foo和Bar的服务和dao。我希望BarService获取与某些Foo关联的Bar实例集。现在我有以下代码,我认为它在概念上是错误的。publicclassFoo{Setbars;publicSetgetBars(){if(bars==null)return(bars=newHashSet());returnbars;}}publicclassBarServiceImpl{publicListgetListOfBars(Foofoo){returnnewArrayList(foo.getBa

java - 组织.hibernate.AnnotationException : @OneToOne or @ManyToOne on <entity> references an unknown entity

我收到以下Hibernate异常:org.hibernate.AnnotationException:@OneToOneor@ManyToOneoncz.rohan.dusps.model.Switchport.konfiguracniTemplateAccessreferencesanunknownentity:cz.rohan.dusps.model.KonfiguracniTemplateorg.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:103)org.hibernate.cfg.Ann

java - 使用 Java 处理 Postgresql 事务

我有两个使用preparedStatement的查询block。这是第一个:Stringsql="updatecikan_malzemesetmiktar=?whereproje_id=?andmalzeme_id=?";PreparedStatementprep=dbConnect.connection.prepareStatement(sql);prep.setFloat(1,toplam);prep.setInt(2,pid);prep.setInt(3,mid);prep.executeUpdate();这是第二个:Stringsql2="updatemalzemelerset

java - 并非所有命名参数都已在 createSQLQuery 中设置为 hibernate

我收到未设置所有命名参数的错误。下面是我的代码。我的SqlQuery在mysql提示符下运行良好,您可以引用问题中的架构SQLQuerySELECTt.*FROM(SELECT@lim:=2,@cg:='')vars,(select*fromTable1orderbyproduct,amount,make)tWHERECASEWHEN@cgproductTHEN@r:=@limELSE1END>0AND(@r:=@r-1)>=0AND(@cg:=product)ISNOTNULLORDERBYproduct,amount,make我的java代码try{context.dbl.star

java - 组织.hibernate.MappingException : Repeated column in mapping for entity

我正在使用Hibernate3.2.5。使用多对一映射时出现上述异常。培训表与部门表具有多对一关系,即一个部门能够接受不止一项培训。异常要求我在我的hbm文件中添加insert="false"update="false"。如果我在hbm文件中添加这个位,那么代码就可以正常工作。这是hbm文件:如果我将此行更改为:然后代码就可以工作了。我想知道添加这个的确切原因是什么。问候, 最佳答案 您已两次映射DEPT_ID列,此处:在这里:当执行select语句时,Hibernate可以很好地从同一列填充对象的两个属性,但是当执行插入或更新时,

java - hibernate 如何确保二级缓存使用数据库中的最新数据进行更新

我读到过使用hibernate的二级缓存,它可以通过减少数据/对象检索的数据库命中来提高应用程序性能。但是,hibernate如何确保二级缓存与数据库中的数据保持同步。例如:假设以下类是实体并持久化到数据库中。@EntityclassUser{Idprivateintid;privateStringstr;}现在,如果我们启用了二级缓存,我知道如果我们打开不同的session,那么每个session都会命中二级缓存以检索对象值。现在,如果数据库中的数据发生变化(例如,对于id=1的行),比如通过一些独立的进程/手动更改值,并且我们尝试访问该值,hibernate如何检测到缓存具有最新的

java - Hibernate : Why FetchType. LAZY-annotated 集合属性急切加载?

我尝试实现简单的one-to-many协会。在使用Debug模式检查项目对象后,我发现Listbids已经加载。但是Listbids属性用FetchType.LAZY注释.一些书籍和网页声称FetchType.LAZY是JPA提供者接受或拒绝的提示。但我想知道JPA提供商在什么情况下会忽略FetchType.LAZY.提前谢谢你。@Entity@Table(name="ITEM")publicclassItemimplementsSerializable{@IdprivateLongid=null;privateStringname;@ManyToOne(fetch=FetchType

java - 如何在 hibernate 实体中按多列定义索引?

早上好。我需要在hibernate实体中添加索引。据我所知,可以使用@Index批注为单独的列指定索引,但我需要为多个实体字段创建索引。我用谷歌搜索并找到了jboss注释@Table,它允许这样做(根据规范)。但是(我不知道为什么)这个功能不起作用。可能是jboss版本低于必要的版本,或者我不明白如何使用这个注释,但是......没有创建复杂的索引。为什么不能创建索引?jboss版本4.2.3.GA实体示例:packagesomepackage;importorg.hibernate.annotations.Index;importjavax.persistence.Column;im

java - 使用 Hibernate 加载 20K 产品,修改实体并更新到数据库

我正在使用hibernate更新我数据库中的2万个产品。截至目前,我正在提取20K产品,遍历它们并修改一些属性,然后更新数据库。所以:loadproductsforeachproductssessionbegintransactionproductDao.MakePersistant(p);sessioncommit();到目前为止,与您的标准jdbc相比,速度非常慢,我可以做些什么来加快速度?我确定我在这里做错了什么。 最佳答案 在文档中查看此类处理的正确位置是整个Chapter13.Batchprocessing.在这里,您当前