我正在使用hibernate和oracle.I开发java web应用程序。我设置了两个实体,如下所示
@Entity
public class Student{
@Id
Long id;
String name;
}
@Entity
public class Exam{
@Id
Long id;
String status;
@ManyToOne
Student student;
}
当我在hibernate中使用select查询时,如下所示
String hql=
我正在尝试提高应用程序的性能,所以我们做的第一件事就是查看数据库查询以优化它们。
我们做的其中一件事是在适当的地方添加了"join fetch“和"left join fetch”来删除N+1查询。
另一种方法是批量检索结果(select distinct stuff from stuff left join fetch other_stuff where id in (?1)),而不是for循环逐个检索结果(for (id: ids) select distinct stuff from stuff left join fetch other_stuff where id =
我使用的是JPA2.1和Hibernate 4.3.7
我试着调整我的应用程序,所以我把关系变成懒惰,只获取我需要的东西。
当我再次加载实体时,当我再次加载实体时,Hibernate将实体替换为代理,即使我获取了实体,并且该代理在应用程序的视图部分(JSF)中不起作用,我对多对一关系也有问题。当多对一处于急切模式时,问题就消失了,但是hibernate为每个多对一的多执行一个选择,即使我不需要它们。
@Entity
public class Department {
@Id
private Integer id;
//...
}
1/
@Entity
public c
我在MySQL数据库中有两个表:
1-运动:
:主键。
fk_Content:content表上的外键。
tk_DistributionGroup:外键在distribution_group表类型上。
2-内容:
:主键。
tk_contentSubtype:外键在distribution_list表类型上。
我有一个名为CampaignData的java (不是hibernate实体)
public class CampaignData {
private long contentId;
private long contentSubTy
在结合使用JPA NamedQuery和AttributeConverter时,我遇到了一点问题。
基本上,我得到了一个具有XYZ类型的字段xyz的实体,它是使用AttributeConverter<XYZ, String>转换的,所以值作为VARCHAR值存储在数据库中。这很好用。但我不太确定如何使用NamedQuery查询Entity.xyz:
@NamedQuery(name="Entity.testQuery", query="SELECT e FROM Entity e WHERE e.xyz=:xyz
如果我以这种方式尝试,Hibernate在启
我有一个,并解散一个包含延迟加载的图像的实体。单击行后加载以查看详细信息。
但我必须在datatable中显示图像。datatable使用分页,每页显示15行。
我在映射中使用了以下注释
// Fetch type must be lazy due to out of memory error in eager mode
@OneToMany(cascade = { CascadeType.REMOVE, CascadeType.MERGE }, mappedBy = "alarm", fetch = FetchType.LAZY, orphanRemoval = tr
我有一个简单的hibernate查询,在查询中使用了nolock。我收到错误-一个识别错误发生了,hibernate错误被抛出:'NHibernate.Hql.Ast.ANTLR.QuerySyntaxException‘in NHibernate.dll。不用防盗器就行。我不想用
<property name="connection.isolation">ReadUncommitted</property>
因为我只能在特定的桌子上应用nolock。
以下是hql查询-
select d from Users d with (nolock) w
我在hibernate中遇到了一个问题,在使用DTO对象时,hibernate会执行N+1选择。
例如,以下JPQL查询:
SELECT com.acme.MyDto(t) FROM Thing t
其中MyDto的构造函数类似于:
public MyDto(Thing t) {
...
}
这将导致类似以下内容的查询:
SELECT t.id FROM thing t WHERE condition
后跟每一行的所有单个查询,即:
SELECT t.id, t.column1, t.column2 FROM thing t WHERE t.id = 1
SELECT t.id, t.c
我有一个应用程序,它使用Hibernate来支持Oracle和MySQL数据库。更新之后,我必须手动删除包含索引/约束的一些列。这些索引已经Hibernate生成了随机名称。
在Oracle中,我可以这样做:
ALTER TABLE table_name DROP (column_name) CASCADE CONSTRAINTS;
不幸的是,这对于MySQL来说是不可能的。有可能做这种事吗
DROP INDEX (SELECT Key_name FROM (SHOW INDEX FROM table_name WHERE Column_name = 'column_name'
我正在使用Spring和Hibernate开发一个webapp应用程序。问题是,我需要向所有客户展示我的客户,并且每个客户都有另一个相关的实体("Cobrador",我不知道这里的英文翻译,对不起),我正在使用JQgrid来实现这个目标。当我执行网格时,我在日志中看到:
Hibernate: select cliente0_.id as id1_0_, cliente0_.activo as activo2_0_, cliente0_.apellido as apellido3_0_, cliente0_.cobrador as cobrador8_0_, cliente0_.
我在Hibernate中使用Spring Data JPA。
我有一个具有映射到数据库表的组合键的类。
当我使用JPARepository扩展接口对象执行保存操作时,我在控制台中看到以下日志:
Hibernate: select rolefuncti0_.functionalityId as function1_4_0_, rolefuncti0_.roleId as roleId2_4_0_ from RoleFunctionality_Mapping rolefuncti0_ where rolefuncti0_.functionalityId=? and rolefuncti0_.rol
我有两个表主题,Members.Members由创建主题的成员组成,为成员提供内部映射。
以下HQL查询在Hibernate编辑器中工作
select m from Topic as t inner join T.Members m where t.title = 'World News'
当涉及实现的Java端时
Object o= session.createQuery("select m.username,m.membergroup from Topic as t inner
join t.members m wh
我在检索与其他对象有许多关系的多个对象实例时遇到了性能问题。我在MySQL中使用Spring和Hibernate的JPA实现。问题是,当执行JPA查询时,Hibernate不会自动连接到其他表。这将产生n*r +1个SQL查询,其中n是要检索的对象的数量,r是关系的数量。
例如,一个人住在一个地址,有很多爱好,并且去过很多国家:
@Entity
public class Person {
@Id public Integer personId;
public String name;
@ManyToOne public Address address;
方案如下。我们的应用程序中有一个hql查询,如
select a.status from table a where A.status = 1
这是在hibernate3的工作。但是,当升级到hibernate 5.0.12和JPA2.1时,这个查询不起作用。给出以下例外情况:
org.hibernate.hql.internal.ast.QuerySyntaxException:无效路径: java.lang.IllegalArgumentException:
当我们像在同一种情况下一样更新别名时,这是有效的。
select a.status from table a where a
最近,我意识到应用程序消耗的内存比它应该消耗的内存要多。我对JVM做了一个线程转储,发现Hibernate SessionFactoryImpl中有数百in的SQL查询。
这些查询出现在内存中,只需启动应用程序服务器。在后台,我已经放弃了队列(JMS)或其他一些进程的假设。
查询采用以下2种格式:
select
diferenc0_.id as id975_137_,
[...]
where diferenc0_.id=?
或
select
diferenc0_.id as id975_137_,
[...]
where diferenc0_.id= IN (?,?,?,?,?,?,?,?)
我有一个web应用程序(使用Vaadin、Hibernate和Postgres数据库),用户可以在其中向某个表添加数据。当用户将项目添加到此表中时,系统会要求他们输入名称、日期,并从表中选择所有相关产品。当他们单击保存时,我可以将名称和日期保存到数据库中,但在从表中抓取项目并将其放入集合中进行添加时遇到了问题。表的bean类如下所示:
/** Created by Hibernate **/
public class BeanClass implements Serializable {
private String name;
private Date date;
p
在case when语句中执行HQL子查询时我遇到了问题。
这是我的代码:
select case when a.entityId is null then 'invalid' else
(select b.entityName from tblName b where b.entityId =a.entityId)
end from tblEntity a
谢谢你的帮助!
好的..。这是完整的堆栈跟踪
ERROR org.hibernate.hql.PARSER - <AST>:0:0: unexpected AST node: query
Exc
我在Spring 4.1.4应用程序中使用了最新的Ehcache。我所拥有的是:
class Contact{
int id;
int revision;
}
@Cacheable("contacts")
public List<Contact> getContactList(List<Integer> contactIdList) {
return namedJdbc.queryForList("select * from contact where id in (:idlist)", Collecti
我在MYSQL中有一个表,它对少数列使用全文索引。我正在使用hibernate访问我的web应用程序中的MYSQL数据库。当我尝试搜索全文列时,使用以下hibernate查询:
From posts p where MATCH (p.description) AGAINST ('testing')
我从hibernate获得了以下异常:
antlr.NoViableAltException: unexpected token: AGAINST
hibernate (4.3.11版)似乎不理解MYSQL全文搜索表达式。有什么办法可以用hibernate吗?欢迎任何建议。提前谢谢。
我的应用程序使用JPA (1.2)、Spring (3.1.2)、Spring Data (1.1.0)和Hibernate (4.1.7)。DataBase : Oracle10g
我们已经启用了二级缓存。它可以很好地处理实体,但在命名查询缓存上会产生问题。
问题是:如果命名查询具有相同的where子句但不同的select语句,那么无论第一个查询执行什么,第二个查询也会给出相同的结果。
比如我的第一个查询(CountRelease)是
select count(r) from Release r where r.type in
(select c.contentTypeId from Co
我正在尝试为save()操作更新一个带有flush:true的数据库。调试器显示状态已更新,但当我使用此sql时
Select * from domain_name where id = 123
我仍然保持着原来的状态。
我使用Quartz插件运行一个预定的cron作业,该作业从同一个表中读取:
DomainName.withTransaction{ status ->
try
{
DomainName name = DomainName.get(123)
name.status =
这应该很简单,但是我的应用经常抛出错误,而且我还是个Hibernate新手。
我正在尝试使用Hibernate在我的web应用程序中进行简单的HQL查询。
我想执行以下SQL查询:
SELECT * FROM deal WHERE deal_status='A' OR WHERE deal_status='O';
HQL似乎不能与或子句一起工作,下面是我在web应用程序中当前的HQL语句:
FROM deal d where d.deal_status='O' or d.deal_status='A' order by d.id
我正尝试在Hibernate SQL查询中使用COLLATE语句,但它无法识别该语句。
CONSULTA: FROM Articulos WHERE activo=0
and (codigodearticulo like '%CIN EMB%' COLLATE='Modern_Spanish_CI_AI'
or descripcion like '%CIN EMB%' COLLATE='Modern_Spanish_CI_AI'
or des