草庐IT

Hibernate

全部标签

java - AnnotationException 引用的属性不是 (One|Many)ToOne

我试图建立一对一的关系。但我得到错误:AnnotationExceptionReferencedpropertynota(One|Many)ToOneoncom.student.information.service.Department.departmentIdinmappedByofcom.student.information.service.DepartmentHead.department这两个实体几乎完全相同。部门可以没有部门负责人。部门.Java@Entity@Table(name="department",catalog="student")publicclassDep

java - 如果我修改一个 Hibernate 实体,在保存之后,当我提交时,更改将保存到数据库中

如果在Hibernate中,我执行以下步骤:打开session。创建一个新的hibernatePOJO对象(即要保存的对象),并填写值。现在我执行session.save()。现在我更改POJO对象-假设它是一个员工对象,然后我执行emp.setName("OtherName"),即更改对象中员工的姓名。现在我进行事务提交。我的问题是什么会被保存到数据库中——我执行session.save()之前的名称还是更改之后的名称,即“其他名称”? 最佳答案 在您保存实体的那一刻,它就变成托管状态,所有进一步的更改都会在Session.flu

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

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

java - 无法 Autowiring 字段,但我有定义

我的app-config.xml有我的UserDaobean的定义:我有我的组件扫描:我的HomeController中的索引操作工作正常(它将我的UserService上的方法的内容输出到freemarker模板)。@ControllerpublicclassHomeController{@AutowiredprivateUserServiceuserService;@RequestMapping("/")publicModelAndViewIndex(){ModelAndViewmav=newModelAndView();mav.setViewName("index");mav.a

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 - 使用 JPA 选择元组的好方法

finalListdata=em.createQuery("SELECTp.idASi,p.membershipASmFROMPlayerpWHEREp.idIN:ids",Tuple.class).setParameter("ids",ids).getResultList();这会产生错误“无法为具有多个返回值的查询创建TypedQuery”。我可以通过省略类型参数(并使用Object[]而不是Tuple,正如我后来发现的那样)来解决这个问题:@SuppressWarnings("unchecked")finalListdata=em.createQuery("SELECTp.idA

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如何检测到缓存具有最新的