maybatis一對多 多對一查詢

2021-09-14 05:08:41 字數 2287 閱讀 1558

1.mybatis 一對多的三種實現方式(查詢1的一方把多的一方查出來):

方式1:

1的一方:

<?xml version="1.0" encoding="utf-8"?>

warning - @mbg.generated

-->

//一對多 conllection標籤

//property:一的類中持有多的集合的引用

// oftype:多的一方集合的型別

//select :在多的一方的xml中寫查詢語句

// 把要按什麼條件查的引數傳入多的一方的sql

select

* from

t_rule a

where

a.id = #

多的一方的xml:

<?xml version="1.0" encoding="utf-8"?>

warning - @mbg.generated

-->

select * from t_rule_factor where rule_id=#

方式2:聯合查詢(left join)

案例中t_strategy 為1的一方 ,t_strategy_flow為2的一方:

t_strategy 的xml如下 按t_strategy 的id查t_strategy 表 要把與之關聯的t_strategy_flow的資料查出來:

<?xml version="1.0" encoding="utf-8"?>

warning - @mbg.generated

-->

//兩表id重複 故兩表id都有取別名

//一對多標籤collection

//oftype:集合的型別(實體的全路徑)

//把多的一方的屬性寫在下面 用於對映

select

s.id sid,

s.strategy_code,

s.strategy_name,

s.create_time,

s.update_time,

s.`status` sstatus,

f.id fid,

f.strategy_id,

f.sub_strategy_id,

f.card_id,

f.positive_next_sub_strategy,

f.negative_next_sub_strategy,

f.nohit_next_rule_sub_strategy,

f.card_score_compare_para,

f.score_gt_para_next_card,

f.score_eq_para_next_card,

f.score_lt_para_next_card,

f.priority,

f.`status` fstatus

from

t_strategy s

left join t_strategy_flow f on s.id = f.strategy_id

where

s.id = #

效果為:

2.多對一查詢:

查多的一方 查全部也好 按id查也好 查出與之對應的那乙個關聯物件

多的一方的xml:

<?xml version="1.0" encoding="utf-8"?>

warning - @mbg.generated

-->

//多對一標籤association

//select:在一的一方寫sql 通過namespace的路徑把select的名字寫上

//column:一的一方sql的條件 按多表的什麼字段查

//查多表的全部也好 按id查也好

select * from t_rule_factor where id=#

一的一方的xml:

<?xml version="1.0" encoding="utf-8"?>

warning - @mbg.generated

-->

select * from t_rule where id =#

多對一方式2:也可聯合查詢 (left join)

一對多 多對一

pip install djangorestframework 3.9.2 pip install markdown 3.0.1 markdown support for the browsable api.pip install django filter 2.1.0 filtering supp...

hibernate 一對多(多對一)

舉個例子 乙個國家有多個省份,多個省份只有乙個國家,這個就是多對一和一對多,兩者就是看物件的角度問題 多對一關聯對映 在多的一端加入外來鍵指向一的一端,他維護的關係是多指向一 一對多關聯對映 在多的一端加入外來鍵指向一的一端,它維護的關係是一指向多 也就是說一對多和多對一的對映策略是一樣的,只是站的...

hibernate註解一對多 多對一

註解 多對一刪除時 只執行多的一方而一不會改變 新增時考慮 一的一方主鍵是否存在 cascade表示級聯操作 cascadetype.merge級聯更新 cascadetype.persist級聯重新整理 cascadetype.refresh級聯儲存 cascadetype.remove級聯刪除 ...