Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Hibernate进行查询并对对象字段应用限制_Java_Sql_Hibernate_Spring Mvc_Restrictions - Fatal编程技术网

Java 如何使用Hibernate进行查询并对对象字段应用限制

Java 如何使用Hibernate进行查询并对对象字段应用限制,java,sql,hibernate,spring-mvc,restrictions,Java,Sql,Hibernate,Spring Mvc,Restrictions,这是实体Utene;如您所见,有一个字段autenticazione,它是另一个实体,称为autenticazione @Entity @Table(name = "utente") @Component public class Utente implements Serializable{ ... @OneToOne(mappedBy = "utente", cascade = CascadeType.ALL) @Valid private Autentica

这是实体Utene;如您所见,有一个字段autenticazione,它是另一个实体,称为autenticazione

@Entity
@Table(name = "utente")
@Component
public class Utente implements Serializable{
    ...
    @OneToOne(mappedBy = "utente", cascade = CascadeType.ALL)
    @Valid
    private Autenticazione autenticazione;  
    ...
}
这是实体autenticatazione

@Component
@Entity
@Table(name = "autenticazione")
public class Autenticazione implements Serializable{
    ...
    @OneToOne(targetEntity=Utente.class)    
    @JoinColumn(name="utente", referencedColumnName="id") 
    private Utente utente;      

    @Column(name = "username")
    @Size(min = 3, max = 20)
    @Pattern(regexp="^[A-Za-z0-9.-_]*$")
    private String username;
    ...
}
我必须进行一个查询,允许我从数据库中获取对象utete,通过对象autenticatazione的字段username的值进行搜索,该字段是实体utete的字段

我应该这样做:

Criteria criteria = getCurrentSessionFactory().createCriteria(Utente.class);
criteria.add(
             Restrictions.eq("autenticazione.username",            
             utenteForSearch.getAutenticazione().getUsername())
             );
是否可以使用Hibernate并将实体本身的字段用作“where”

谢谢

评论者(@Dragan Bozanovic)是正确的,你想要这个:

Criteria criteria = getCurrentSessionFactory().createCriteria(Utente.class);
crit.createAlias("autenticazione", "autenticazione");
criteria.add(
             Restrictions.eq("autenticazione.username",            
             utenteForSearch.getAutenticazione().getUsername())
             );
创建一个。