2016-07-07 2 views
0

Je voulais savoir pourquoi j'ai des résultats différents hibernait requête et sql? Ai-je tort la cartographie? Java un hibernation n'a pas d'exception. J'utilise dans ce cas la base de données Oracle 11 et Hibernate 3.5.Hibernate a renvoyé les résultats zéro, mais SQL natif renvoie différents

J'ai la prochaine entité mise en veille prolongée:

@Table(name = "pat_otb_registry") 
public class OtbEntity implements Comparable<OtbEntity> { 

    @Column(name = "legal_address_region") 
    private BigDecimal legalAddressRegion; 

    @Column(name = "declarant") 
    private String declarant; 

    @Column(name = "registry_cert_number") 
    private String registryCertNumber; 

    @Column(name = "decision_to_grant_date") 
    private Date decisionToGrantDate; 

    @Column(name = "competent_authority") 
    private BigDecimal competentAuthority; 

    @Column(name = "expiry_date") 
    private Date expiryDate; 

    @Column(name = "decision_to_grant_number") 
    private String decisionToGrantNumber; 

    @Column(name = "decision_to_cancel_number") 
    private String decisionToCancelNumber; 

    @Column(name = "decision_to_exclude_number") 
    private String decisionToExcludeNumber; 

    @Column(name = "certification_authority") 
    private String certificationAuthority; 

    @Column(name = "appraisee") 
    private String appraisee; 

    @Column(name = "date_of_end_stage") 
    private Date dateOfEndStage; 

    @Column(name = "certification_field") 
    private String certificationField; 

    @Column(name = "validity_years") 
    private BigDecimal validityYears; 

    @Column(name = "decision_to_extend_number") 
    private String decisionToExtendNumber; 

    @Column(name = "issue_date") 
    private Date issueDate; 

    @Column(name = "reason") 
    private String reason; 

    @Column(name = "decision_to_cancel_date") 
    private Date decisionToCancelDate; 

    @Column(name = "decision_to_exclude_date") 
    private Date decisionToExcludeDate; 

    @Column(name = "decision_to_extend_date") 
    private Date decisionToExtendDate; 

    @Column(name = "extended_to_date") 
    private Date extendedToDate; 

    @Column(name = "oa_registry_number") 
    private String oaRegistryNumber; 

    @Column(name = "grounds_for_issue") 
    private String groundsForIssue; 

    @Column(name = "doc_num") 
    private String docNum; 
// then getters and setters.... 
} 

La Table SQL:

CREATE TABLE pat_otb_registry (
    legal_address_region number(10,0) NULL, 
    declarant nvarchar2(2000) NOT NULL, 
    registry_cert_number nvarchar2(2000) NOT NULL, 
    decision_to_grant_date date NULL, 
    competent_authority smallint NOT NULL, 
    expiry_date date NULL, 
    decision_to_grant_number nvarchar2(2000) NULL, 
    decision_to_cancel_number nvarchar2(2000) NULL, 
    decision_to_exclude_number nvarchar2(2000) NULL, 
    certification_authority nvarchar2(2000) NOT NULL, 
    appraisee varchar2(2000) NOT NULL, 
    date_of_end_stage date NULL, 
    certification_field nvarchar2(2000) NULL, 
    validity_years integer NULL, 
    decision_to_extend_number nvarchar2(2000) NULL, 
    issue_date date NULL, 
    reason nvarchar2(2000) NULL, 
    decision_to_cancel_date date NULL, 
    decision_to_exclude_date date NULL, 
    decision_to_extend_date date NULL, 
    extended_to_date date NULL, 
    oa_registry_number nvarchar2(2000) NULL, 
    grounds_for_issue nvarchar2(2000) NULL, 
    doc_num nvarchar2(2000) NULL, 
    CONSTRAINT pat_otb_registry_pk PRIMARY KEY (registry_cert_number) 
) ; 

la requête en veille prolongée:

getEntityManager().createQuery("SELECT o FROM " + getEntityName() + " o").getResultList() 

requête SQL:

getEntityManager().createNativeQuery("select * from pat_otb_registry") 
+0

À part que je ne vois pas votre annotation @Id pour la clé primaire, ça me semble ok. Je n'ai pas la patience de vérifier tous les noms de colonne, mais je suppose que s'il y avait un mauvais nom, il devrait se plaindre pendant le déploiement. –

+0

Quelques exemples de requêtes SQL natives et d'hibernation natives aideraient certainement à comprendre le problème – whitesite

+0

Gut feel me dit qu'il sera lié au choix/raison d'utiliser une colonne NVARCHAR2 pour une clé primaire. Quels sont tous les jeux de caractères concernés? –

Répondre

0

J'ai trouvé un bug. Je n'ai pas travaillé correctement EntityManager - getEntityManager()