2016-07-07 12 views
0

なぜ私は異なる結果のhibernaitクエリとSQLを持っているのか知りたかったのですか?間違ったマッピングをしましたか?休止状態のJavaには例外はありません。この場合、Oracle 11データベースと休止状態3.5を使用します。Hibernateはゼロの結果を返しますが、native sqlは異なる戻り値を返します

@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.... 
} 

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) 
) ; 

休止クエリ:

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

SQLクエリ:

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

は、私は次のHibernateのエンティティを持っています
+0

主キーの@注釈は表示されません。私はすべての列名をチェックするのに忍耐を持っていませんが、間違った名前が付けられていると仮定して、デプロイ時に不平を言わなければなりません。 –

+0

ネイティブSQLクエリーとハイバネーションリクエストのいくつかの例は、この問題を理解するのに役立ちます。 – whitesite

+0

プライマリキーにNVARCHAR2カラムを使用する選択肢/理由に関連しています。関連するすべての文字セットは何ですか? –

答えて

0

バグが見つかりました。私は正しく働いていません。EntityManager - getEntityManager()

関連する問題