我正在尝试编写一个使用where子句中括号的NHibernate HQL查询。然而,HQL解析器似乎忽略了我的括号,从而改变了我语句的含义。有人能说明这件事吗?
以下HQL查询:
from WebUser u left join fetch u.WebUserProfile left join fetch
u.CommunicationPreferences where (u.CommunicationPreferences.Email = 0 and
u.SyncDate is not null) or u.DateDeleted is not null
翻译为:
from WebUs
我有以下HQL:
select r from Route r where r.startingStop.description = 'Railway Station'
现在,我已经将我的HQL修改为:
select r from Route r where r.startingStop.description = 'Railway Station' or r.destinationStop.description = 'Railway Station'
我得到了以下异常:
org.hibernate.exception.DataException
有没有人能帮我把下面这个用于获取分页结果的SQL查询翻译成HQL?
SELECT *
FROM REPORDER repairorde0x_
INNER JOIN REPREPAIRDEVICE repairdevi1x_
ON repairorde0x_.ID=repairdevi1x_.REPORDERID
WHERE repairorde0x_.ID IN
(SELECT id
FROM
(SELECT row_.id,
rownum rownum_
FROM
(SELECT DISTINCT repairor
我有一个应用程序,它具有以下HQL:
select distinct p from Position p
inner join fetch p.RequiredSkills rs
inner join fetch rs.Skill s
where s.Id in (:skills)
我已经搜索了该职位有该技能的职位。
目前,hql只能返回具有该技能的位置,但它只获取过滤后的技能。
现在,我想返还与该职位相关的所有技能。
有什么方法可以让我这样做吗?
干杯,
詹姆斯
我正在编写查询以从表中获取数据。
我的hql查询是
SELECT distinct bd FROM BillDetails AS bd
LEFT JOIN FETCH bd.customerDetails AS cd
LEFT JOIN FETCH bd.billProductList AS bpd
LEFT JOIN FETCH bpd.product AS pd
WHERE bd.billNo=:id
AND bd.client.id=:cid
上述查询工作正常。
我想写一个查询来获取billPaidDetailses所有数量字段的和。
billPa
我有以下几个类:
public class A{
private Set<B> bSet;
}
public class B{
private Set<C> cSet;
private boolean isAvailable;
}
public class C{}
HQL是:
select a from A a
left join fetch a.bSet
left join fetch b.cSet
where a.id = ? and bSet.isAvailab
我已经创建了下面提到的SQL的HQL,但是我无法通过条件和子查询来执行它。请帮助我通过标准执行以下查询(SQL & HQL)。感谢Advance..。
SQL:
SELECT * FROM app_interface ain WHERE ain.id IN (SELECT ai.id FROM app_interface ai INNER JOIN app_module_interface ami ON ami.interface_id = ai.id INNER JOIN app_module am ON am.id = ami.module_id WHERE am.id = :id
当出现以下条件时,我希望在任务表上添加一个左联接:左联接获取提示符p on (t.id = p.task.id 和p.applicationName in ('XXX'))
这里是我的hql查询:
select
distinct t
from
TASK t
LEFT JOIN FETCH
SERVER ser
on t.id=ser.task_id
LEFT JOIN FETCH
AP
我在通过hibernate获取结果时遇到了问题。
我有四个表SnsUser,Participant,Interaction,Content;SnsUser & Interaction有多-2-多关系,Interaction和Content有多-2-1。(SnsUser和Interation在三个映射类中获得了一组参与者,hibernate为多对二对多做了这一点)
当我像这样运行HQL时
from SnsUser s join fetch s.participants p join fetch p.interaction i join fetch i.content c where s.
的问题为我触发了另一个问题,关于一些实现关注
现在您知道必须重用部分HQL查询才能进行计数,如何有效地重用?
两个HQL查询的不同之处是:
所选内容为count(?),而不是pojo或属性(或列表)
抓取不应该发生,所以某些表不应该连接。
order by应该消失
还有其他的区别吗?
您有编码最佳实践来实现这种高效的重用(关注点:工作、清晰、性能)吗?
简单的HQL查询示例:
select a from A a join fetch a.b b where a.id=66 order by a.name
select count(a.id
如何在HQL中编写“不存在”查询?我正在尝试获取一个HQL not exists查询,该查询返回与此Oracle SQL查询相同的结果:
select *
from SCHOOL a
where not exists (select 1
from STUDENT b
where B.SCHOOL_ID=a.id
and B.STATUS_ID not in (0,1,2,3,4))
我的映射文件如下:
<!-- School.hbm.xml -->
<class name="com.companyname.Sch
我正在做一个基于hibernate和spring的项目。我花了两天时间,但不知道为什么调用这段代码时会出现“惰性异常”错误:
public MemberUser SendEmail(MemberUser user) throws MailSendingException {
// Check if password will be sent by mail
// Hibernate.initialize(user);
user = fetchService.fetch(user, FETCH);
// user = userDao.load(user.getId
我的hql查询如下所示,但它没有按a.remoteCreatedAt列对记录进行排序,如果order by子句中有任何错误,请帮助我。
SELECT c
FROM Comic c
JOIN FETCH c.album a
JOIN FETCH a.media m
JOIN FETCH c.user u
LEFT JOIN FETCH a.user ow
LEFT JOIN FETCH c.channel channel
LEFT JOIN FETCH c.categories cc
WHERE a.publishedAt !=NULL
AND channel.uniqueName IN (
我正在尝试创建一个命名查询,该查询出现错误。 " SELECT p FROM Project p " +
" JOIN FETCH p.employees e " +
" WHERE p.id=:id AND ( TREAT(e AS FullTimeEmployee).code = :code OR e.state=:state)" 项目类 public class Project {
@Id
@GeneratedValue
private long id;
private String code;
我有以下代码段,在其中我得到了错误
using (var session = Database.OpenSession())
{
var q = from x in session.Query<User>()
where x.UserName == username & x.Password==EncodePassword(password)
select x;
if (q.Count() > 0)
{
result = true;
}
}
在if语句中,我得到了错误
下面是我的代码,我在这里使用多个列表从数据库中获取数据。在从hql查询中获取数据时,它将显示异常。
Pojo类
public class BillDetails implements java.io.Serializable {
private Long billNo;
// other fields
@LazyCollection(LazyCollectionOption.FALSE)
private List<BillPaidDetails> billPaidDetailses = new ArrayList<BillPaidDetails>();
private
下面是hql查询。我希望在没有锁定表的情况下选择部门、员工,以便其他查询并发地从这些表中检索记录,即使下面的查询正在运行/执行
from Department dept inner join fetch dept.employees emp where dept.Id = :DeptId
我试过在下面,但那仍然是获得锁
from Department dept nolock inner join fetch dept.employees emp nolock where dept.Id = :DeptId
我正在尝试计算hql查询的行数。我收到了列TypeOfPermission不存在的警告。这让我觉得很奇怪,因为之前的查询确实有效。下面的代码行返回了2行(不出所料)
from ClientIdentity c left join fetch c.Permissions p where p.TypeOfPermission = :permissionType;
但是,使用以下count查询时,查询失败,因为现在不再识别列TypeOfPermission。
countQuery = "select count(*) from ClientIdentity c left join fetch
我想用发音符号在Oracle数据库中搜索字符串,例如:输入"o",然后搜索"o“以及"o”、"ö“或”o“。
我可以使用原生SQL中的REGEXP_LIKE()函数和基本字母运算符==来完成此操作,如下所示:
where REGEXP_LIKE(<column_name>,'[[=o=]]')
然而,现在,我不知道如何使用QueryDSL来做到这一点。我尝试了@的解决方案,但没有成功。
当前代码如下:
return new JPAQuery<AEntity>(em)
.from(QAEnt
这种理论上的质疑在hibernate中是可能的吗?
Person personQuery = new Person();//(@Entity)
personQuery.setId(5);
List<Person> persons = personQuery.get("=").fetch();
含义
SELECT * from person WHERE id=5
当事情很简单时,我希望使用bean(实体),而不是HQL。
有没有支持它的API?
是什么原因导致hibernate试图解析包路径,同时也会失败:
Exception in thread "Timer-9" org.hibernate.QueryException: could not resolve property: codeto of: citylist_AUD [select new list(ee, e) from citylist_AUD ee, ee.codeto.wes.Citylist_AUD e where ee.originalId.citylist_id = e.originalId.id and ee.originalId.Road_
我有两个模型,Item和ShopSection。他们有一个多对多的关系。
@Entity(name = "item")
public class Item extends Model
{
@ManyToMany(cascade = CascadeType.PERSIST)
public Set<ShopSection> sections;
}
@Entity(name = "shop_section")
public class ShopSection extends Model
{
public List<Item&
我想在hql中给出附加参数和连接条件。在sql查询中,我编写
select a.*,ur.fname,ur.lname
from
atom as a
left join user as ur
on
a.id=ur.id
left join album as al
on
a.id=al.aid
and al.name='Profile'
left join post_images as pi
on
a.id=pi.aid
and pi.is_album_cover='yes'
where
(ur.fname like '%n%'
or ur
我使用NHibernate 3.3.1和FluentNhibernate 1.3作为数据层。
我有以下实体:
数据库图:
我需要一个方法,以获得产品的MediaCategory的媒体产品。我希望NHibernate只向db发送一个查询,并获取产品的所有子属性。
我希望NHibernate发送这样的查询:
declare @mediaCategoryId int = 13
select *
from Product p
inner join Media m on m.ProductId=p.Id
inner join MediaCategoryMedia mcm on mc
我有3个Java Hibernate实体。User具有与Filter实体的单向oneToMany表示。Filter实体与Model实体具有单向manyToOne关系。我只想删除Filter实体,但获取MySQLIntegrityConstraintViolationException。
无法删除或更新父行:外键约束失败(gecars.users_filters、约束FK_oymjo03tkarckpfjfmaak99lj外键(filters_id)引用filters (id))
用户:
@Entity
@Table(name="users")
public class