3 Stimmen

Daten werden nicht aus einer Tabelle mit Fremdschlüssel für ein eindeutiges Feld abgerufen

Ich habe die Tabelle mwallet_terminal_store_mapping, in der tid (Zeichenvariation) der Primärschlüssel und der Fremdschlüssel ist, der sich auf eine Spalte tid in terminal_master bezieht. In terminal_master ist tid (Zeichenvariation) ein eindeutiger Schlüssel, und seine PK-ID ist lang.

Jetzt habe ich ein DTO für die erste Tabelle mapping_details, die wie folgt definiert ist.

    private TerminalMaster terminalMaster;

    @OneToOne
@JoinColumn(name="pine_tid", referencedColumnName = "tid")
public TerminalMaster getTerminalMaster() {
    return terminalMaster;
}

public void setTerminalMaster(TerminalMaster terminalMaster) {
    this.terminalMaster = terminalMaster;
} 

Schema für die erste Tabelle:

 CREATE TABLE mwallet_terminal_store_mapping
 (
pine_tid character varying(8) NOT NULL,
pine_sid bigint NOT NULL,
pine_mid text NOT NULL,
fis_tid text NOT NULL,
fis_sid text NOT NULL,
fis_mid text NOT NULL,
date_created timestamp without time zone,
date_modified timestamp without time zone,
created_by text,
modified_by text,
status text,
rfu1 text,
rfu2 text,
rfu3 text,
rfu4 text,
rfu5 text,
CONSTRAINT mwallet_terminal_store_mapping_pkey PRIMARY KEY (pine_tid),
CONSTRAINT fk_mwallet_terminal_store_mapping_pinesid FOREIGN KEY (pine_sid)
    REFERENCES store_master (id) MATCH SIMPLE
    ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT fk_mwallet_terminal_store_mapping_pinetid FOREIGN KEY (pine_tid)
    REFERENCES terminal_master (tid) MATCH SIMPLE
    ON UPDATE NO ACTION ON DELETE NO ACTION
    )

Schema für die zweite Tabelle:

CREATE TABLE terminal_master
(
id bigint NOT NULL DEFAULT nextval('terminal_master_seq'::regclass),
tid character varying(8),
store_master_id bigint,
status integer,
inserted_on timestamp without time zone,
modified_on timestamp without time zone,
offline_floor_limit character varying(20),
enable_redeem integer DEFAULT 1,
enable_load_activate integer DEFAULT 1,
enable_offline integer DEFAULT 1,
enable_balance_enquiry integer DEFAULT 1,
enable_format_validation integer DEFAULT 1,
enable_category_validation integer DEFAULT 1,
enable_category_popup integer DEFAULT 1,
enable_prepaid_load integer DEFAULT 1,
enable_prepaid_reload integer DEFAULT 1,
rfu1 character varying(20),
rfu2 character varying(20),
rfu3 character varying(20),
block_status integer DEFAULT 0,
enable_gf_redeem integer DEFAULT 0,
externalid character varying(15),
fis_tid text,
licence_id text,
CONSTRAINT terminal_master_pkey PRIMARY KEY (id),
CONSTRAINT fk_terminal_master_1 FOREIGN KEY (store_master_id)
  REFERENCES store_master (id) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT uq_terminal_master_1 UNIQUE (tid)
)

Das Problem besteht nun darin, dass ich versuche, in der ersten Tabelle auf der Grundlage von tid zu suchen,

Es heißt SQLGrammer Exception, weil der Operator nicht existiert: character varing = bigint.

was bedeutet, dass es immer noch versucht, meine Zeichenfolge mit dem Primärschlüssel von terminal_master zu vergleichen, nicht mit dem, auf den ich verwiesen habe.

Bitte klären Sie das.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X