Sql JPA查询的问题

Sql JPA查询的问题,sql,hibernate,jpa,orm,Sql,Hibernate,Jpa,Orm,在HQL中执行查询时出现问题 奥姆 人物角色 @Entity @Table(name = "persona") @Inheritance(strategy = InheritanceType.JOINED) @DynamicUpdate @SelectBeforeUpdate(value = false) @SelectBeforeUpdate(value = false) @NamedQueries({ @NamedQuery(name = "PersonasByRfc"

在HQL中执行查询时出现问题

奥姆


人物角色

    @Entity
@Table(name = "persona")
@Inheritance(strategy = InheritanceType.JOINED)
@DynamicUpdate

@SelectBeforeUpdate(value = false)

@SelectBeforeUpdate(value = false)
@NamedQueries({
    @NamedQuery(name = "PersonasByRfc", query = "FROM Persona p WHERE p.rfc = :rfc "),
    @NamedQuery(name = "PersonasPorTipoPersona", query = "FROM Persona p WHERE p.tipoPersona = :tipoPersona "),
    @NamedQuery(name = "PersonaByClienteId", query = " SELECT c.persona FROM Cliente c WHERE c.clienteId = :clienteId "),
    @NamedQuery(name = "PersonaMoralActiva", query = "SELECT c.persona FROM Cliente c WHERE c.persona.regimenFiscal = 'MORAL' AND c.estatus = 'ACTIVO' ")
})

public class Persona extends CommonBusinessProperties {
private static final long serialVersionUID = 2846894501470704239L;
private Long           personaId;
private CatTipoPersona tipoPersona;
private String         descripcionTipoPersona;
private String         nombres;
private String         apellidoMaterno;
private String         apellidoPaterno;
private RegimenFiscal  regimenFiscal;
private Nacionalidad   nacionalidad;
private String         rfc;
private String         curp;
private Genero         genero;
private Date           fechaNacimiento;
private Boolean        esCliente;
private Boolean        esContratante;
private Boolean        esPagador;
private Boolean        esMontoPagar;
private BigDecimal     montoPagar;
private Boolean        esPorcentajePagar;
private String         porcentajePagar;
private String         origenPersona;
private String         parentesco;
private Parentesco     tranParentesco;
private Cliente        cliente;

private ExpedientePersona expedientePersona;
private List<Domicilio> domicilios = new ArrayList<>(0);
private List<Telefono>  telefonos  = new ArrayList<>(0);
private List<Correo>    correos    = new ArrayList<>(0);

/**
 * Constructor <br>
 * Crea una nueva instancia de Persona. <br>
 *
 * @author Orlando Adrián Ramos Galván (oramos@legosoft.com.mx, orlandoa.ramos@outlook.com)<br>
 */
public Persona() {
    super();
}

/**
 * Constructor <br>
 * Crea una nueva instancia de Persona. <br>
 *
 * @param personaId
 * @author Orlando Adrián Ramos Galván (oramos@legosoft.com.mx, orlandoa.ramos@outlook.com)<br>
 */
public Persona(Long personaId) {
    super();
    this.personaId = personaId;
}

/**
 * Constructor <br>
 * Crea una nueva instancia de Persona. <br>
 *
 * @param personaBuilder
 * @author Orlando Adrián Ramos Galván (oramos@legosoft.com.mx, orlandoa.ramos@outlook.com)<br>
 */
public Persona(PersonaBuilder personaBuilder) {
    this.tipoPersona = personaBuilder.getTipoPersona();
    this.descripcionTipoPersona = personaBuilder.getDescripcionTipoPersona();
    this.nombres = personaBuilder.getNombresORazonSocial();
    this.apellidoMaterno = personaBuilder.getApellidoMaterno();
    this.apellidoPaterno = personaBuilder.getApellidoPaterno();
    this.setRegimenFiscal(personaBuilder.getRegimenFiscal());
    this.setNacionalidad(personaBuilder.getNacionalidad());
    this.setRfc(personaBuilder.getRfc());
    this.curp = personaBuilder.getCurp();
    this.genero = personaBuilder.getGenero();
    this.fechaNacimiento = personaBuilder.getFechaNacimiento();
    this.esCliente = personaBuilder.getEsCliente();
    this.esContratante = personaBuilder.getEsContratante();
    this.esPagador = personaBuilder.getEsPagador();
    this.esMontoPagar = personaBuilder.getEsMontoPagar();
    this.montoPagar = personaBuilder.getMontoPagar();
    this.esPorcentajePagar = personaBuilder.getEsPorcentajePagar();
    this.porcentajePagar = personaBuilder.getPorcentajePagar();
    this.domicilios = personaBuilder.getDomicilios();
    this.telefonos = personaBuilder.getTelefonos();
    this.correos = personaBuilder.getCorreos();
}

@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "persona_id", unique = true, nullable = false, updatable = false)
public Long getPersonaId() {
    return this.personaId;
}

public void setPersonaId(Long personaId) {
    this.personaId = personaId;
}

@ManyToOne(fetch = FetchType.EAGER, targetEntity = CatTipoPersona.class)
@JoinColumn(name = "tipo_persona_id")
@Fetch(FetchMode.SELECT)
public CatTipoPersona getTipoPersona() {
    return this.tipoPersona;
}

public void setTipoPersona(CatTipoPersona tipoPersona) {
    this.tipoPersona = tipoPersona;
}

@Column(name = "tipo_persona", length = 50)
public String getDescripcionTipoPersona() {
    return this.descripcionTipoPersona;
}

public void setDescripcionTipoPersona(String tipoPersona) {
    this.descripcionTipoPersona = tipoPersona;
}

@Column(name = "origen_persona", length = 50)
public String getOrigenPersona() {
    return this.origenPersona;

}

@Column(name = "nombres", length = 100)
public String getNombresORazonSocial() {
    return this.nombres;
}

public void setNombresORazonSocial(String nombres) {
    this.nombres = nombres;
}

@Column(name = "apellido_materno", length = 100)
public String getApellidoMaterno() {
    return this.apellidoMaterno;
}

public void setApellidoMaterno(String apellidoMaterno) {
    this.apellidoMaterno = apellidoMaterno;
}

@Column(name = "apellido_paterno", length = 100)
public String getApellidoPaterno() {
    return this.apellidoPaterno;
}

public void setApellidoPaterno(String apellidoPaterno) {
    this.apellidoPaterno = apellidoPaterno;
}

@Transient
public String getNombreCompleto() {
    return this.nombres + " " + this.apellidoMaterno + " " + this.apellidoPaterno;
}

@Column(name = "regimen_fiscal", length = 100)
@Enumerated(EnumType.STRING)
public RegimenFiscal getRegimenFiscal() {
    return this.regimenFiscal;
}

public void setRegimenFiscal(RegimenFiscal regimenFiscal) {
    this.regimenFiscal = regimenFiscal;
}

@Column(name = "nacionalidad", length = 100)
@Enumerated(EnumType.STRING)
public Nacionalidad getNacionalidad() {
    return this.nacionalidad;
}

public void setNacionalidad(Nacionalidad nacionalidad) {
    this.nacionalidad = nacionalidad;
}

@Column(name = "rfc", length = 13)
public String getRfc() {
    return this.rfc;
}

public void setRfc(String rfc) {
    this.rfc = rfc;
}

@Column(name = "curp", length = 45)
public String getCurp() {
    return this.curp;
}

public void setCurp(String curp) {
    this.curp = curp;
}

@Column(name = "genero", length = 1)
@Convert(converter = GeneroConverter.class)
public Genero getGenero() {
    return this.genero;
}

public void setGenero(Genero genero) {
    this.genero = genero;
}

@Temporal(TemporalType.DATE)
@Column(name = "fecha_nacimiento", length = 10)
public Date getFechaNacimiento() {
    return this.fechaNacimiento;
}

public void setFechaNacimiento(Date fechaNacimiento) {
    this.fechaNacimiento = fechaNacimiento;
}

@Column(name = "es_cliente")
public Boolean isCliente() {
    return this.esCliente;
}

public void setIsCliente(Boolean esCliente) {
    this.esCliente = esCliente;
}

@Column(name = "es_contratante")
public Boolean esContratante() {
    return this.esContratante;
}

public void setEsContratante(Boolean esContratante) {
    this.esContratante = esContratante;
}

@Column(name = "es_pagador")
public Boolean isEsPagador() {
    return this.esPagador;
}

public void setEsPagador(Boolean esPagador) {
    this.esPagador = esPagador;
}

@Column(name = "es_monto_pagar")
public Boolean getEsMontoPagar() {
    return this.esMontoPagar;
}

public void setEsMontoPagar(Boolean esMontoPagar) {
    this.esMontoPagar = esMontoPagar;
}

@Column(name = "monto_pagar", precision = 16, scale = 4)
public BigDecimal getMontoPagar() {
    return this.montoPagar;
}

public void setMontoPagar(BigDecimal montoPagar) {
    this.montoPagar = montoPagar;
}

@Column(name = "es_porcentaje_pagar")
public Boolean getEsPorcentajePagar() {
    return this.esPorcentajePagar;
}

public void setEsPorcentajePagar(Boolean esPorcentajePagar) {
    this.esPorcentajePagar = esPorcentajePagar;
}

@Column(name = "porcentaje_pagar", length = 6)
public String getPorcentajePagar() {
    return this.porcentajePagar;
}

public void setPorcentajePagar(String porcentajePagar) {
    this.porcentajePagar = porcentajePagar;
}

public void setOrigenPersona(String origenPersona) {
    this.origenPersona = origenPersona;
}

@OneToOne(fetch = FetchType.EAGER, mappedBy = "persona", targetEntity = ExpedientePersona.class, optional = true)
protected ExpedientePersona getExpedientePersona() {
    return this.expedientePersona;
}

protected void setExpedientePersona(ExpedientePersona expedientePersonas) {
    this.expedientePersona = expedientePersonas;
}

/**
 * @return parentesco
 */
@Column(name = "parentesco", length = 50)
public String getParentesco() {
    return parentesco;
}

/**
 * @param parentesco
 */
public void setParentesco(String parentesco) {
    this.parentesco = parentesco;
}

@OneToOne(fetch = FetchType.EAGER, mappedBy = "persona", targetEntity = Cliente.class, cascade = {
    CascadeType.MERGE, CascadeType.DETACH })
@Fetch(FetchMode.SELECT)
public Cliente getCliente() {
    return this.cliente;
}

public void setCliente(Cliente cliente) {
    this.cliente = cliente;
}

/**
 * @return si la persona esta relacionada al contratante y es una familiar este campo idnica que
 * parentesco tienen.
 */
@Transient
public Parentesco getTranParentesco() {
    return tranParentesco;
}

/**
 * @param tranParentesco
 */
public void setTranParentesco(Parentesco tranParentesco) {
    this.tranParentesco = tranParentesco;
}

@OneToMany(fetch = FetchType.EAGER, mappedBy = "persona", targetEntity = Domicilio.class, cascade = {
    CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH })
@Fetch(FetchMode.SELECT)
@OrderBy
protected List<Domicilio> getDomicilios() {
    return this.domicilios;
}

protected void setDomicilios(List<Domicilio> domicilios) {
    this.domicilios = domicilios;
}

@OneToMany(fetch = FetchType.EAGER, mappedBy = "persona", targetEntity = Telefono.class, cascade = {
    CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH })
@Fetch(FetchMode.SELECT)
@OrderBy
protected List<Telefono> getTelefonos() {
    return this.telefonos;
}

protected void setTelefonos(List<Telefono> telefonos) {
    this.telefonos = telefonos;
}

@OneToMany(fetch = FetchType.EAGER, mappedBy = "persona", targetEntity = Correo.class, cascade = {
    CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH })
@Fetch(FetchMode.SELECT)
@OrderBy
protected List<Correo> getCorreos() {
    return this.correos;
}

protected void setCorreos(List<Correo> correos) {
    this.correos = correos;
}

}
@实体
@表(name=“persona”)
@继承(策略=InheritanceType.JOINED)
@动态铜日期
@选择BeforeUpdate(值=false)
@选择BeforeUpdate(值=false)
@命名查询({
@NamedQuery(name=“PersonasByRfc”,query=“FROM Persona p,其中p.rfc=:rfc”),
@NamedQuery(name=“PersonasPorTipoPersona”,query=“FROM Persona p其中p.tipoPersona=:tipoPersona”),
@NamedQuery(name=“PersonaByClienteId”,query=“从Cliente c中选择c.persona,其中c.clienteId=:clienteId”),
@NamedQuery(name=“PersonalMoralActiva”,query=“从客户c中选择c.persona,其中c.persona.RegimenFinancial='MORAL'和c.estatus='ACTIVO')
})
公共类角色扩展了CommonBusinessProperties{
私有静态最终长serialVersionUID=2846894501470704239L;
私人长人物;
私人卡蒂波帕索纳;
私有字符串descriptiontipopersona;
私有字符串名称;
私有字符串apellidoMaterno;
私有字符串apellidopterno;
私人区域财政区域财政;
私人国民议会;
私有字符串rfc;
私有字符串curp;
私人慷慨;
私人约会费查那西门托;
私有布尔客户机;
专用布尔值控制器;
私有布尔埃斯帕加多;
私有布尔值;
蒙托帕加私人酒店;
私有布尔值ESPORCENTAEPAGAR;
私人弦瓷器;
私有字符串源角色;
私有字符串parentesco;
私人家长公司;
私人客户;
私人私利;私利;私利;
私有列表住所=新的ArrayList(0);
私有列表telefonos=新的ArrayList(0);
private List correos=new ArrayList(0);
/**
*构造函数
*在人物身上体现新的个性。
* *@作者奥兰多·阿德里安·拉莫斯·加尔万(oramos@legosoft.com.mx,奥兰多亚。ramos@outlook.com)
*/ 公众人物(){ 超级(); } /** *构造函数
*在人物身上体现新的个性。
* *@param personaId *@作者奥兰多·阿德里安·拉莫斯·加尔万(oramos@legosoft.com.mx,奥兰多亚。ramos@outlook.com)
*/ 公共角色(长角色ID){ 超级(); this.personaId=personaId; } /** *构造函数
*在人物身上体现新的个性。
* *@param PersonalBuilder *@作者奥兰多·阿德里安·拉莫斯·加尔万(oramos@legosoft.com.mx,奥兰多亚。ramos@outlook.com)
*/ 公共角色(角色生成器){ this.tipoPersona=personaBuilder.getTipoPersona(); this.DescriptionTipopersona=personaBuilder.GetDescriptionTipopersona(); this.nombres=personaBuilder.getNombresORazonSocial(); this.apellidoMaterno=PersonalBuilder.getApellidoMaterno(); this.apellidopterno=PersonalBuilder.getapellidopterno(); this.setRegimenFinancial(PersonalBuilder.getRegimenFinancial()); this.setNacionalidad(PersonalBuilder.getNacionalidad()); this.setRfc(personaBuilder.getRfc()); this.curp=personaBuilder.getCurp(); this.grando=PersonalBuilder.getGrando(); this.fechaNacimiento=personaBuilder.getFechaNacimiento(); this.esclient=personaBuilder.getesclient(); this.esconstratante=personaBuilder.getesconstratante(); this.esPagador=PersonalBuilder.getEsPagador(); this.esMontoPagar=PersonalBuilder.getEsMontoPagar(); this.montoPagar=PersonalBuilder.getMontoPagar(); this.esPorcentajePagar=PersonalBuilder.getEsPorcentajePagar(); this.procentajepagar=PersonalBuilder.getProcentajepagar(); this.domincilios=PersonalBuilder.getDomincilios(); this.telefonos=personaBuilder.getTelefonos(); this.correos=PersonalBuilder.getCorreos(); } @身份证 @生成值(策略=标识) @列(name=“persona\u id”,unique=true,nullable=false,updateable=false) 公共长getPersonaId(){ 返回此.personaId; } 公共无效setPersonaId(长personaId){ this.personaId=personaId; } @manytone(fetch=FetchType.EAGER,targetEntity=CatTipoPersona.class) @JoinColumn(name=“tipo\u persona\u id”) @Fetch(FetchMode.SELECT) 公共cattipoperona gettipoperona(){ 归还这个。蒂波波波索纳; } 公共无效设置(CatTipoPersona tipoPersona){ this.tipoPersona=tipoPersona; } @列(name=“tipo_persona”,长度=50) 公共字符串getDescriptionTipopersona(){ 返回this.descriptiontipopersona; } public void setDescriptionTipopersona(字符串tipoPersona){ this.descriptiontipopersona=tipoPersona; } @列(name=“origen_persona”,长度=50) 公共字符串getOrigenPersona(){ 返回this.origenPersona; } @列(name=“nombres”,长度=100) 公共字符串getNombresORazonSocial(){ 返回这个.nombres; } public void setNombresORazonSocial(字符串nombres){ this.nombres=nombres; } @列(name=“apellido\u materno”,长度=100) 公共字符串getApellidoMaterno(){ 返回此文件。apellidoMaterno; } public void setApellidoMaterno(字符串apellidoMaterno){ this.apellidoMaterno=apellidoMaterno; } @列(name=“apellido\u paterno”,长度=100) 公共字符串getapellidopterno(){ 返回此文件。apellidopterno; } public void setapellidopterno(字符串apellidopterno){ this.apellidoPaterno=apellidoPaterno; } @短暂的 公共字符串getNombreCompleto(){ 返回this.nombres+“”+this.apellidoMaterno+“”+this.apellidoPaterno; } @列(name=“schedule\u财政”,长度=100) @枚举(EnumType.STRING) 公共区域财政GetRegimenFinancial(){ 返回此。regimenFiscal; } 公共无效SetRegimenFinancial(RegimenFinancial RegimenFinancial){ this.regimenFiscal=regimenFiscal; } @列(name=“nacionalidad”,长度=100) @枚举(EnumType.STRING) 公共国家ID GetNacionalID(){ 返回此.nacionalidad; } 公共无效设置Nacionalidad(Nacionalidad Nacionalidad){