Sql JPA查询的问题
在HQL中执行查询时出现问题 奥姆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"
人物角色
@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){