标签: hibernate-criteria

使用 Hibernate 将 SQL 列的 varchar 类型映射到 Java 的 java.net.URL

我在表中有一个列(名为“url”),其值为 URL。有些存储为“ http://www.test.com”,而另一些存储为“ blogspot.sometest.com”(顺便说一句,该表不是我的,所以我无法更改结构)。

在我的项目中,我将“url”列的内容存储为java.net.URL结构化对象的类型属性(例如 Page(String name,URL url);)。所以,如果可以的话,我不想修改这个项目。

我希望使用Hibernate能够获取具有特定 id 的单个记录。示例代码:

 @Override
public T selectRow(Serializable id){
    T object = null;
    try {
        openSession();
        trns = session.beginTransaction();
        criteria = session.createCriteria(cl);
                 criteria.add(org.hibernate.criterion.Restrictions.eq("doc_id",id));
        //THIS LINE OF CODE LAUNCH THE EXCEPTION: org.hibernate.HibernateException: Unable to convert string [4bid.it] to URL : java.net.MalformedURLException: no protocol: 4bid.it 
       //BECAUSE FOR SOME OF THE URLS THERE IS NO PROTOCOL...
        List<T> results = criteria.list();
        //SAME WITH THIS
        object = (T) criteria.setFirstResult((Integer) id);

    //THE NEXT …
Run Code Online (Sandbox Code Playgroud)

java url hibernate hibernate-mapping hibernate-criteria

2
推荐指数
1
解决办法
1921
查看次数

从子查询 criteriaBuilder 中选择

有人可以告诉我一个如何使用 criteriaBuilder 进行 Hibernate 查询并连接到子查询的示例吗

这是一个简单的例子:

select idSchool, name from user left join (select idSchool from student where age < 15) as NewTable on idSchool = idSchool
Run Code Online (Sandbox Code Playgroud)

谢谢

hibernate jpa criteria-api hibernate-criteria

2
推荐指数
1
解决办法
1616
查看次数

如何在mongotemplate中使用orOperator

以下是 mongo 文档结构,

{_id:123,imageShared:{imageId:345,likeCount:2,rateMedia:{rateVal1:1}}}
{_id:124,imageShared:{imageId:346,likeCount:3,rateMedia:{rateVal2:3}}}
{_id:125,imageShared:{imageId:347,likeCount:3}}
Run Code Online (Sandbox Code Playgroud)

现在我需要获取具有rateVal1、rateVal2字段的文档。为此我做了下面的代码...

Query condition = new Query();
condition.addCriteria(
Criteria.where("imageShared.rateMedia.rateVal1").exists(true).
orOperator(Criteria.where("imageShared.rateMedia.rateVal2").exists(true));
Run Code Online (Sandbox Code Playgroud)

我没有收到文档,因为我期望 _id 为 123,124 个文档。

感谢您的帮助。

java mongodb hibernate-criteria

2
推荐指数
1
解决办法
2927
查看次数

Hibernate Criteria API多个连接

我的hibernate实体如下:

@Entity
@Table(name = "EditLocks")
public class EditLock extends AuditableEntity {

    /** The document that is checked out. */
    @OneToOne
    @JoinColumn(name = "documentId", nullable = false)
    private Document document;
Run Code Online (Sandbox Code Playgroud)

文档然后看起来像这样:

public class Document extends AuditableEntity {
    /** Type of the document. */
    @ManyToOne
    @JoinColumn(name = "documentTypeId", nullable = false)
    private DocumentType documentType;
Run Code Online (Sandbox Code Playgroud)

基本上我想写的查询是:

Select * from EditLocks el, Document docs, DocumentTypes dt where el.documentId = docs.id and docs.documentTypeId = dt.id and dt.id = 'xysz';
Run Code Online (Sandbox Code Playgroud)

如何使用hibernate条件api执行此操作?

java orm hibernate criteria hibernate-criteria

1
推荐指数
1
解决办法
6205
查看次数

加入NHibernate Criteria查询中的多个字段

我有一张Dept桌子和一张Emp桌子.

我需要以这样的方式加入这两个表:where子句看起来像这样:

where dept.deptId = emp.DeptId and dept.deptName = emp.empTrainingName
Run Code Online (Sandbox Code Playgroud)

我试过这个:

Criteria criteria = session.createCriteria(Dept.class).createAlias("empMap","id");
Run Code Online (Sandbox Code Playgroud)

使用它,第一个条件即dept.deptId = emp.DeptId执行.但我不知道如何比较dept.deptNameemp.empTrainingName.

如何使用NHibernate中的Criteria API执行此操作?

nhibernate hibernate criteria hibernate-criteria

1
推荐指数
1
解决办法
4993
查看次数

用于3个表之间连接的Hibernate查询条件

我有一个SQL查询:

select * from A
INNER JOIN B
ON A.id = B.id
INNER JOIN C
ON B.id = C.id
INNER JOIN D
ON C.id = D.id
where D.name = 'XYZ'
   and D.Sex = 'M'
Run Code Online (Sandbox Code Playgroud)

我一直试图为上面的sql提供hibernate查询条件,但是遇到了问题.任何人都可以帮忙吗?

java hibernate hibernate-criteria

1
推荐指数
1
解决办法
2万
查看次数

Hibernate Criteria:从具有外键关系的两个表中选择?

我在我的mysql数据库2表中:

1.teacher(id(pk),name,phone,email)
2.student(id(pk),teacher'sid(FK),name,phone,email)
Run Code Online (Sandbox Code Playgroud)

学生表有一个外键,老师的,对于老师.id.

我想选择他们的id(teachers.id)与(student.teacher'sid)相同的老师,其中student.name ="Steven".

我创建了两个具有与表相同的类名和属性的类,并且我已经配置了映射.

@Entity
class teacher {
@Id
int id;
String name;
String phone;
String email;
}

@Entity
class student {
@Id
int id;
int teachersid;
String name;
String phone;
String email;
}
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式选择他的名字是"史蒂文"的学生:

Criteria q = session.createCriteria(student.class).add(
                Restrictions.eq("name", "stevens"));
Run Code Online (Sandbox Code Playgroud)

如何能够挽回"史蒂文"的老师?就像是

(select * from teacher(where teacher.id = student.teachersid(where student.name="stevens")))
Run Code Online (Sandbox Code Playgroud)

,但使用Hibernate Criteria Api.

提前致谢!

mysql hibernate hibernate-criteria

1
推荐指数
1
解决办法
1万
查看次数

Hibernate标准一对多的不同结果

我有一张person桌子.A person可能有多个kids,也是人.因此,人表之间存在一对多的关系.

我想得到所有至少有一个儿子的人(sex=male).我按照以下标准这样做:

List personsWithSon = sess.createCriteria(Person.class)
     .createAlias("kids", "k")
     .add( Restrictions.eq("k.sex", "male") )
     .list();
Run Code Online (Sandbox Code Playgroud)

只要只有一个儿子,这很好.如果有三个儿子,那么该人将被退回三次.但我只需要一次这个人.我怎样才能对结果做出明确的分析?

hibernate hibernate-criteria

1
推荐指数
1
解决办法
1953
查看次数

org.hibernate.QueryException:@ManyToOne Criteria的重复关联路径

我有两个类,它们之间有关系.这些是

com.edfx.adb.persist.Activity:

package com.edfx.adb.persist.entity;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.NaturalId;

@javax.persistence.Entity
@Table(name = "ACTIVITY")
public class Activity extends Entity {

    @Transient
    private static final long serialVersionUID = 4741665931936809028L;

    private String activityId;
    private String activityName;
    private String activityDescription;
    private Customer customer;
    private ActivityType activityType;
    private boolean active;
    private Double mandays;
    private Double price;
    private String manager;
    private List<Participation> participations;

    public Activity() { …
Run Code Online (Sandbox Code Playgroud)

java hibernate-mapping hibernate-annotations hibernate-criteria hibernate-4.x

1
推荐指数
1
解决办法
1万
查看次数

如何获取grails中一列的所有数据?

我是grails的新手,我正在努力寻找解决方案,但我在这里没有发现任何问题......

我想做的是,我的域名中有这个标签:

    String platform
    String appVersion
    String name
    String id
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得appVersion列中存储的所有数据?

grails grails-orm hibernate-criteria

1
推荐指数
1
解决办法
1236
查看次数