我有表mwallet_terminal_store_mapping其中tid(character varing)是主鍵和外鍵引用terminal_master中的列tid。 在terminal_master中,tid(這是字符變化)是唯一鍵。其PK ID很長。獨特的字段上的外鍵沒有得到的數據
現在我有第一個表mapping_details的DTO,它定義如下。
private TerminalMaster terminalMaster;
@OneToOne
@JoinColumn(name="pine_tid", referencedColumnName = "tid")
public TerminalMaster getTerminalMaster() {
return terminalMaster;
}
public void setTerminalMaster(TerminalMaster terminalMaster) {
this.terminalMaster = terminalMaster;
}
模式第一個表:
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
)
架構第二個表格:
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)
)
現在的問題是,當我試圖在第一個表的基礎上進行搜索
它說SQLGrammer異常,因爲操作符不存在:character varing = bigint。
這意味着它仍然試圖比較我的字符串與terminal_master的主鍵, 而不是我所指定的tid。
請說明。
您能否顯示模式的相關部分,因爲您的解釋不是很清楚。 – axtavt 2011-04-04 13:41:26
列'pine_tid'是什麼類型? – Thomas 2011-04-04 13:43:58
我編輯過,Pine_tid是字符不同的字符。我猜DTO中的映射需要一些更改。 – coder 2011-04-04 13:51:58