草庐IT

java.lang.ClassCastException : [Ljava. lang.Object;不能转换为 entity.UserEntity

我想在hibernate状态下查询两个表。用户实体中的featch3表(用户角色配置文件)。用hql查询:query="selectue,ue.roleEntity.roleIdfromUserEntityue,RoleEntityrefetchallpropertieswhereue.roleEntity.roleId=re.roleIdandue.username='reza'andue.password='123456'";并运行查询:try{sessionFactory=HibernateUtil.getSessionFactory();session=sessionFacto

java - 如何在 Hibernate HQL 中使用 Oracle 的 regexp_like?

我正在使用oracle10g和hibernate3.3.2。以前在sql中用过正则表达式,现在第一次在HQL中使用。Queryquery=getSession().createQuery("FromCompanycompanywherecompany.id!=:companyIdandregexp_like(upper(rtrim(ltrim(company.num))),'^0*514619915$')");这是我的hql,当我在没有regex_like函数的情况下运行它时,它会按预期运行。但是我无法使用regex_like表达式来执行它。它说..nestedexceptioniso

java - Hibernate Generated Value 策略

我在hibernate状态下使用这段代码。@Id@GeneratedValue(strategy=GenerationType.AUTO)@Column(name="RightID",unique=true,nullable=false)问题是当我删除一行时,“RightId”不保持顺序。我想要类似的东西,hibernates应该检查id,如果缺少某些id值,它必须将该值赋予'RightsId',否则将正常进行 最佳答案 我不认为在hibernate中有任何这样的选项可用。除了AUTO,您还可以尝试以下策略选项:Generation

java - 不等于 hql 中的查询不起作用

我在hql中尝试“不等于”查询。@OverridepublicStudentfindStudentsByYear(Stringyear){StringqueryString="fromStudentwhereyear:year";Queryquery=sessionFactory.getCurrentSession().createQuery(queryString);query.setParameter("year",year);return(Student)query.uniqueResult();}但它不能正常工作。如何正确编写此查询我的学生表是+-------------+--

java - Hibernate @Formula 不包含 Schema

我有一个具有属性@Formula的实体,如下所示:@Entity@Table(name="areasAuxiliar")publicfinalclassAreaAuxiliarimplementsSerializable{@Id@Column(name="idArea")privateIntegeridArea;@Formula("RUTAAREA(idArea)")privateStringruta;当我将我的hibernate配置为指向Oracle数据库时,我没有遇到任何问题,但是,当我切换到SQLServer时,hibernate不包括shema并且查询失败,为hibernate

java - 在 Hibernate 中重用查询

我在Hibernate中使用HQL查询,只是想知道我是否可以提高我的应用重用查询的性能。通常你必须为每个session创建一个新的查询对象:Sessionsession;Queryq1=session.createQuery("selectafromArticleawhereid=:id");q1.setInteger("id",123);Listresult=q1.list();现在我在HQL中有相对复杂的查询,我不想一遍又一遍地解析。有没有办法创建一个查询并在另一个session中重用它?像这样:Sessionsession;Queryq2=q1.reattach();q2.set

java - HQL更新问题

当我尝试执行以下HQL查询时:Queryquery=getSession().createQuery("updateXYZsetstatus=10");query.executeUpdate();我得到这个异常:Exceptioninthread"main"org.hibernate.QueryException:querymustbeginwithSELECTorFROM:update编辑:我也试过跟随。但它也不起作用。org.hibernate.Queryquery=getSession().createQuery("updateXYZtsett.status=10");编辑2:在

java - 在 WHERE 子句中带有集合的 HQL

我一直在努力寻找一个正式让我做噩梦的查询。该系统是一个用户和联系人管理。所以我有UserAccount、Contact和Phone。UserAccount与Contact具有双向一对多关系,在电话上具有单向关系,均由Set映射://UserAccountmapping@OneToMany(targetEntity=PhoneImpl.class,cascade={CascadeType.ALL})@org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)pri

java - org.hibernate.hql.ast.QuerySyntaxException : TABLE NAME is not mapped

我有两个模型,Item和ShopSection。它们之间存在多对多关系。@Entity(name="item")publicclassItemextendsModel{@ManyToMany(cascade=CascadeType.PERSIST)publicSetsections;}@Entity(name="shop_section")publicclassShopSectionextendsModel{publicListfindActiveItems(intpage,intlength){returnItem.find("selectdistinctifromItemijoin

java - hibernate :org.hibernate.hql.ast.QuerySyntaxException:意外的 token

我正在使用Hibernate并且我有这个查询:Listlist=sess.createQuery("fromPerson").list();通过这条语句,我从数据库中获取了所有人。但是现在,我只想要一些人。我的数据库方案:项目Person所以我只想要作为项目成员的人员。通过数据库中的SQL语句,我得到了想要的结果:select*fromPersoninnerjoinProject_Persononperson_id=idwhereproject_id=1;所以我想,我可以用Hibernate写这个:Listlist=sess.createQuery("fromPersoninnerjo