精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hibernate中inverse屬性與cascade屬性

開發 后端
Hibernate集合映射中,經常會使用到"inverse"和"cascade"這兩個屬性。對于我這樣,Hibernate接觸不深和語文水平夠爛的種種因素,發現這兩個屬性實在是難以理解,無奈只好將這個兩個屬性解釋工作交給了Google和Baidu,查看了許多牛人的解釋,加上自己在Eclipse上的調試,對"inverse"和"cascade"這兩個屬性有了一定的見解。

Hibernate集合映射中,經常會使用到"inverse"和"cascade"這兩個屬性。對于我這樣,Hibernate接觸不深和語文水平夠爛的種種因素,發現這兩個屬性實在是難以理解,無奈只好將這個兩個屬性解釋工作交給了Google和Baidu,查看了許多牛人的解釋,加上自己在Eclipse上的調試,對"inverse"和"cascade"這兩個屬性有了一定的見解。

"inverse"屬性探究

"inverse"-直譯過來就是"反轉,使顛倒"的意思,書面化的解釋為"是否將關系維護的權力交給對方"(這個解釋真夠蛋疼的-_-!!,就是理解不了)。 Hibernate中的"inverse"屬性只有兩個值"true"和"false"。"true"表示將關系維護的權力交給對方,"false"表示不交出維護權力(默認值)。

例如有兩張表,customer和orders,他們的關系是一對多,customer是一方,orders為多方。

  1. drop table if exists customer;  
  2. drop table if exists orders;  
  3.  
  4. create table customer  
  5. (  
  6.     id varchar(255) not null,  
  7.     username varchar(255),  
  8.     password varchar(255),  
  9.     age integer,  
  10.     register_time datetime,  
  11.     primary key (id)  
  12. );  
  13.  
  14. create table orders  
  15. (  
  16.     id varchar(255) not null,  
  17.     orderNumber varchar(255),  
  18.     balance integer,  
  19.     customer_id varchar(255),  
  20.     primary key (id)  
  21. ); 

兩表對應的hbm文件,對應的POJO類:

  1. /*customer表對應的POJO類*/ 
  2. public class Customer  
  3. {  
  4.     private String id;  
  5.     private String username;  
  6.     private String password;  
  7.     private Timestamp registerTime;  
  8.     private int age;  
  9.     private Set<Order> orders = new HashSet<Order>();  
  10.  
  11.     public Customer()  
  12.     {  
  13.  
  14.     }  
  15.  
  16.     /*get and set method*/ 
  17.  
  18. }  
  19.  
  20. /*orders表對應的POJO類*/ 
  21. public class Order  
  22. {  
  23.     private String id;  
  24.     private String orderNumber;  
  25.     private int balance;  
  26.     private Customer customer;  
  27.       
  28.     public Order()  
  29.     {  
  30.           
  31.     }  
  32.  
  33.     /* get and set method*/ 

 

  1. <!--Customer類的hbm文件-->  
  2.     <hibernate-mapping>  
  3.         <class name="com.suxiaolei.hibernate.pojos.Customer" table="customer">  
  4.             <id name="id" type="string">  
  5.                 <column name="id"></column>  
  6.                 <generator class="uuid"></generator>  
  7.             </id>  
  8.               
  9.             <property name="username" column="username" type="string"></property>  
  10.             <property name="password" column="password" type="string"></property>  
  11.             <property name="age" column="age" type="integer"></property>  
  12.             <property name="registerTime" column="register_time" type="timestamp"></property>  
  13.               
  14.             <set name="orders" inverse="true" cascade="all">  
  15.                 <key column="customer_id" ></key>  
  16.                 <one-to-many class="com.suxiaolei.hibernate.pojos.Order"/>  
  17.             </set>  
  18.           
  19.         </class>  
  20.     </hibernate-mapping>  
  21.  
  22. <!--Order類的hbm文件-->  
  23.     <hibernate-mapping>  
  24.         <class name="com.suxiaolei.hibernate.pojos.Order" table="orders">  
  25.             <id name="id" type="string">  
  26.                 <column name="id"></column>  
  27.                 <generator class="uuid"></generator>  
  28.             </id>  
  29.               
  30.             <property name="orderNumber" column="orderNumber" type="string"></property>  
  31.             <property name="balance" column="balance" type="integer"></property>  
  32.               
  33.             <many-to-one name="customer" class="com.suxiaolei.hibernate.pojos.Customer">  
  34.                 <column name="customer_id"></column>  
  35.             </many-to-one>          
  36.         </class>  
  37.     </hibernate-mapping> 

下面寫一些測試代碼測試"inverse"屬性的特性:

情況一:將"inverse"設置為true,讓多方維護關系

  1. try 
  2. {  
  3.     tx = session.beginTransaction();  
  4.       
  5.     /*  
  6.      * 創建Customer對象,并設置其屬性值  
  7.      */ 
  8.     Customer customer = new Customer();  
  9.     customer.setUsername("zhangsan");  
  10.     customer.setPassword("123456");  
  11.     customer.setAge(22);  
  12.     customer.setRegisterTime(new Timestamp(new Date().getTime()));  
  13.       
  14.     /*  
  15.      * 創建Order對象order1,并設置其屬性值  
  16.      */ 
  17.     Order order1 = new Order();  
  18.     order1.setOrderNumber("a1a2a3");  
  19.     order1.setBalance(1000);  
  20.     order1.setCustomer(customer);//將customer對象關聯到order1對象上  
  21.       
  22.     /*  
  23.      * 創建Order對象order2,并設置其屬性值  
  24.      */ 
  25.     Order order2 = new Order();  
  26.     order2.setOrderNumber("d3d2d1");  
  27.     order2.setBalance(670);  
  28.     order2.setCustomer(customer);///將customer對象關聯到order2對象上  
  29.       
  30.     customer.getOrders().add(order1);//將order1對象關聯到customer對象上  
  31.     customer.getOrders().add(order2);//將order2對象關聯到customer對象上  
  32.       
  33.     session.saveOrUpdate(customer);  
  34.       
  35.     tx.commit();  
  36. }  
  37. catch (Exception e)  
  38. {  
  39.     if(tx != null)  
  40.     {  
  41.         tx.rollback();  
  42.     }  
  43.       
  44.     e.printStackTrace();  
  45. }  
  46. finally 
  47. {  
  48.     session.close();  

數據庫中的數據更新為:

customer表: 

orders表:

現在將order1.setCustomer(customer);這段代碼注釋掉,再次運行程序:

customer表:

orders表:

可以到看到顯著地差別了,第一次保存"id"="402881e534ea7c750134ea7c76bc0001"的數據時,orders表中插入了兩條數據,他們的customer_id都為customer中對應記錄的主鍵值,而第二次保存記錄"id"="402881e534ea81be0134ea81bfea0001"的數據時,由于先前將原來的代碼段order1.setCustomer(customer);注釋掉了,此時order表中插入的數據中order1代表的那條記錄沒有customer_id值。

從以上現象可以有助于理解"inverse"這個屬性。首先,"inverse"控制關系維護權力,那么什么是"關系"?,關系的具體體現是什么?在以上例子中,"關系"就是兩個表之間的關系,通常為"一對多","一對一","多對多"三種關系,而關系的具體體現為orders表中的 customer_id列,而"inverse"屬性就是告訴Hibernate哪一方有權力管理和維護這一列。上面的例子將"inverse"設置為 true那么customer_id這一列由多方(order對象)維護。這說明了,只有order對象對關系的操作會反映到數據庫中。(對象對關系的操作就是對關聯屬性的操作,例如order對象對自身的"customer"屬性操作,customer對象對自身的orders集合(Set<Order>)操作)

例如,將id="402881e534ea7c750134ea7c76bc0001"的customer對象從數據庫中取出,獲取到該customer對象所關聯的order對象集合,將該customer對象所關聯的order對象刪除。

  1. Customer customer = (Customer)session.get(Customer.class"402881e534ea7c750134ea7c76bc0001");  
  2. Order order = (Order)session.get(Order.class"402881e534ea7c750134ea7c76ce0002");  
  3.               
  4. System.out.println("customer association order count:"+customer.getOrders().size());  
  5. customer.getOrders().remove(order);  
  6. System.out.println("customer association order count:"+customer.getOrders().size());  
  7.               
  8. session.saveOrUpdate(customer); 

//Console Output:

customer association order count:2
customer association order count:1

 

可以看到customer中關聯的order對象集合確實有對象被刪除了,若操作有效,表示該order對象與customer對象沒有關系了,反映到數據庫中應該將該order對象對應的customer_id設置為null。現在查看一下數據庫數據:

看到了吧,剛剛那個操作就是個無用操作,不會反應到數據庫中。我們修改一下程序代碼:

  1. Customer customer = (Customer)session.get(Customer.class"402881e534ea7c750134ea7c76bc0001");  
  2. Order order = (Order)session.get(Order.class"402881e534ea7c750134ea7c76ce0002");  
  3.               
  4. order.setCustomer(null);  
  5.               
  6. session.saveOrUpdate(customer); 

這次我們使用order對象來操作關系,將該order對象與customer對象脫離關系,若操作有效,則反映在數據庫中應該是該order對象的customer_id字段的值變成null,現在查看一下數據庫:

可以看到,此次操作成功的反映到了數據庫中了。

情況二:將"inverse"屬性設置為"false",雙方都維護關系(因為沒有一方交出權力,"inverse"的默認值為"false",而且"inverse"屬性只能在set、list、map等幾個標簽中設置,像many-to-one這一類的標簽都不能設置"inverse"這個屬性值,它們只能取值"false")

這里會產生書中所說的性能問題(囧,這個也是理解了很久很久),這個不管怎么說你都可能理解不了,我就是這樣的(-_-!!),所以我建議使用第三方的軟件將Hibernate輸出的SQL語句的綁定值顯示出來(可以參考這里)。之所以會產生性能為題,當你操作關系是會無故多產生一些update語句,比如你使用上面的例子保存一個customer對象,它關聯了2個order對象,它不但會生成3條insert語句(用于插入數據),還會生成2條update語句(將關聯的order對象的customer_id更新為自己的主鍵值),你想想要是一個customer對象包含幾萬了order對象(購物狂),那么每次保存它得要多生成幾萬條update語句,這個就是很嚴重的性能問題了。

為什么Hibernate會產生update語句呢?那是Hibernate太主動,太熱情,太負責的表現,它怕你出現錯誤,例如有幾萬個order對象需要關聯到customer對象上,這就需要調用order.setCustomer(customer);,幾萬個對象這不是人可以不放錯的完成的。所以Hibernate怕你出錯忘記調用這個方法,所以他將會在order對象保存完畢后將所有關聯對象的customer_id字段更新一遍,確保正確性,這樣也就產生上面的性能問題。

將"inverse"設置為false后,你可以嘗試設置order1.setCustomer(null),它依然會正確的將customer的主鍵值完美的插入到order的customer_id字段上,只是會多一條update語句。

"cascade"屬性

"cascade"-直譯過來就是"級聯、串聯"的意思,書面化的解釋為"該屬性會使我們在操作主對象時,同時Hibernate幫助我們完成從屬對象相應的操作(比如,有Customer和Order這兩張表,關系為一對多,只使用JDBC刪除Customer表中的一行記錄時,我們還需要手動的將Order表中與之關聯的記錄全都刪除,使用Hibernate的'cascade'屬性后,當我們刪除一條Customer記錄時,Hibernate會幫助我們完成相應Order表記錄的刪除工作,方便了我們的工作)"。

總 結

使用"inverse"這個屬性時,要考慮清楚關系,不然你的系統就會有大的性能問題(不過我可能想不清楚,現在還是一個普通大學生沒什么實戰經驗-_-!!,要繼續努力~_~),書本上和一些牛人建議,關系一般由"多方"維護,當遇到"多對多"時怎么辦,其實多對多久是兩個"一對多",隨意設置一方"inverse"為"true"就可以了,不要兩方都設置或都不設置(囧,我開始就是死板這樣的設置)。而是用"cascade"屬性時,主對象(一方)一般設置為"all",而多方不建議設置包含delete操作的選項,建議設置多方為"save-update",這是因為你刪除一方,多方已經沒有存在的意義了,而刪除多方不能代表一方沒意義了(例如,消費者和訂單)。最后,"cascade"操作的是兩張表的記錄或兩端的對象,而"inverse"操作的是兩張表的關系或兩個對象的關系。

原文鏈接:http://www.cnblogs.com/otomedaybreak/archive/2012/01/17/2324772.html

【編輯推薦】

  1. Hibernate復合主鍵映射
  2. Hibernate繼承映射
  3. Hibernate事務與并發問題處理
  4. 讓Hibernate顯示SQL語句的綁定參數值
  5. Hibernate延遲加載剖析與代理模式應用
責任編輯:林師授 來源: 音①曉的博客
相關推薦

2011-04-07 11:06:18

Hibernate

2009-09-22 09:40:03

cascade和invHibernate

2009-06-12 14:52:21

cascadeinverseHibernate

2009-09-23 08:56:18

Hibernate cHibernate i

2009-06-29 08:59:05

hbm的generat

2009-09-23 13:33:51

Hibernate屬性

2009-09-29 17:00:08

Hibernate c

2009-06-18 10:29:24

Hibernate I

2009-09-28 09:56:53

Hibernate屬性

2009-07-02 09:34:05

hibernate的l

2009-09-25 13:39:40

Hibernate屬性

2009-06-12 15:05:03

cascadeHibernate

2009-06-29 08:58:06

Hibernate的g

2023-11-20 14:41:34

Python屬性

2023-12-01 10:20:04

Python類屬性

2010-09-07 14:40:10

title屬性Alt屬性CSS

2010-09-07 16:21:37

CSSDisplayVisibility

2023-09-21 23:29:59

2010-09-16 10:29:47

DisplayVisibilityCSS

2010-09-03 14:00:29

CSSbackground
點贊
收藏

51CTO技術棧公眾號

欧美日韩亚洲不卡| 久久一二三国产| 欧美极品美女电影一区| 手机在线成人av| 欧美亚洲大片| 亚洲欧美另类综合偷拍| 狠狠久久综合婷婷不卡| 中国黄色片免费看| 91高清在线观看视频| 成人午夜av电影| 国产精品久久77777| 三级av在线免费观看| 欧美成人一区在线观看| 欧美另类videos死尸| 国产原创popny丨九色| 最近高清中文在线字幕在线观看| 亚洲精品欧洲| 中文国产亚洲喷潮| 国产精品久久久久久亚洲av| 久久免费影院| 欧美高清在线一区| 91亚色免费| 丰满熟女人妻一区二区三| 国内综合精品午夜久久资源| 国产一区二区三区免费视频| 风韵丰满熟妇啪啪区老熟熟女| 欧美7777| 99亚偷拍自图区亚洲| 国产中文字幕亚洲| 亚洲国产av一区二区三区| 欧美视频官网| 日韩亚洲一区二区| 美女被到爽高潮视频| 超碰成人在线免费| 欧美一区二区福利视频| 在线观看av日韩| av影片在线| 亚洲精品你懂的| 日本不卡一区二区三区视频| 黄色小视频免费在线观看| 老司机免费视频一区二区 | 九色视频成人porny| 国产视频在线免费观看| 欧美96一区二区免费视频| 5252色成人免费视频| 久久综合成人网| 伊人成综合网| 久久久999国产| 俄罗斯毛片基地| 国产最新精品| 国产一区二区三区久久精品| 亚洲熟妇一区二区三区| 欧美aaaaaaaa牛牛影院| 亚洲第一级黄色片| 波多野结衣三级视频| 日本一区二区三区电影免费观看| 91精品在线免费观看| 天天综合网日韩| 成人在线免费电影网站| 欧美中文字幕一区二区三区亚洲| 久久九九国产视频| 户外露出一区二区三区| 欧美最猛性xxxxx直播| 欧美黄色性生活| 午夜无码国产理论在线| 欧美亚洲高清一区| 天天操,天天操| 国产日韩欧美中文在线| 日韩欧美国产成人一区二区| 亚洲AV成人精品| 岛国精品一区| 亚洲加勒比久久88色综合| 99久久人妻无码中文字幕系列| 人人精品视频| 伊人青青综合网站| av黄色免费在线观看| 婷婷精品进入| 欧美国产日韩视频| 日韩精品成人一区| 久久精品国语| 国产色视频一区| 精品久久国产视频| av激情综合网| 日韩偷拍一区二区| 2024短剧网剧在线观看| 午夜精品久久久久影视| 国产精品亚洲a| 色婷婷成人网| 日韩av中文在线| 老头老太做爰xxx视频| 91精品国产麻豆国产在线观看 | 欧美办公室脚交xxxx| 日韩欧美国产一区二区| 中文字幕在线综合| 岛国av一区| 日韩在线观看免费全集电视剧网站| 成人免费精品动漫网站| 国产日韩欧美三区| 国产精品亚洲视频在线观看| 亚洲精品视频网| 国产亚洲精品bt天堂精选| 中文字幕人成一区| 中文在线最新版地址| 7777精品久久久大香线蕉| 亚洲天堂2024| 欧美高清在线| 2020欧美日韩在线视频| 国产美女永久免费| 国产亚洲一区二区在线观看| av不卡在线免费观看| 自拍一区在线观看| 欧美xxxxx牲另类人与| 国产成人免费观看网站| 激情欧美一区| 亚洲xxxxx性| 国产在线一在线二| 亚洲18女电影在线观看| 91av视频免费观看| 深爱激情综合| 国模叶桐国产精品一区| 一本色道久久综合无码人妻| 91视频国产资源| 国产91视频一区| 欧美成人资源| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲一区国产视频| 福利视频999| 狠狠色丁香婷婷综合影院| 欧美精品videos另类日本| 国产一区二区三区四区视频| 国产日韩欧美综合在线| 国产又黄又大又粗视频| gogo人体一区| 欧美成人午夜激情视频| 中文字幕一区二区三区免费看 | 美乳视频一区二区| 手机av免费在线| 欧美老年两性高潮| 日韩视频在线观看免费视频| 亚洲少妇自拍| 国产精品一区在线观看| av免费在线观| 91麻豆精品国产91久久久久久久久 | 嫩草视频免费在线观看| 天堂成人娱乐在线视频免费播放网站| 日韩在线免费av| 探花国产精品一区二区| 国产丝袜欧美中文另类| 免费在线激情视频| 日韩啪啪网站| 欧美综合国产精品久久丁香| 亚洲三区在线播放| 精品久久久久久久中文字幕| 91九色蝌蚪porny| 一区二区亚洲精品| 国产日韩欧美一区二区| 男女在线视频| 亚洲精品国偷自产在线99热| 日韩av一二三区| 97精品视频在线观看自产线路二| 777777av| 亚洲va久久| 欧美重口另类videos人妖| 欧美zozo| 欧美日韩激情在线| 一级片一级片一级片| 国产一区三区三区| 日本a级片在线播放| 99a精品视频在线观看| 久久久久久久激情视频| 性感美女福利视频| 91福利小视频| 国精产品视频一二二区| 国产精品综合一区二区三区| 成人污网站在线观看| 国产精品国产| 国产成+人+综合+亚洲欧美丁香花| 黄色大片在线看| 欧美日韩国产综合一区二区三区 | 黄色片子免费看| 国语精品一区| 欧美在线视频二区| 日本久久二区| 久久久久久久久中文字幕| 亚洲色图欧美视频| 欧美日韩国产美女| 久久久久噜噜噜亚洲熟女综合| av一区二区三区黑人| 久久久久免费精品| 亚洲自拍偷拍网| 久久草视频在线看| 欧美aaaaaa| 欧美激情手机在线视频| 男女视频在线观看| 制服.丝袜.亚洲.中文.综合| 日本少妇毛茸茸高潮| 国产午夜久久久久| 自拍偷拍激情视频| 丝袜亚洲另类欧美综合| 日本久久高清视频| 亚洲影院天堂中文av色| 亚洲一区二区三区在线免费观看| 中文字幕乱码在线播放| 萌白酱国产一区二区| 久草视频视频在线播放| 日韩一区二区三区三四区视频在线观看 | 欧美日韩中文一区二区| 亚洲伊人久久综合| 亚洲欧美韩国| 欧美成人在线免费视频| 可以直接在线观看的av| 日韩欧美一区二区在线视频| 天堂网一区二区| 亚洲国产综合91精品麻豆| 手机看片国产日韩| 91视频免费看| 无码国产精品一区二区免费式直播| 久久亚洲欧美| www.av毛片| 中文在线日韩| 亚洲人体一区| 一区二区三区日本久久久| 99在线视频免费观看| 成人免费毛片嘿嘿连载视频…| 久久久久久九九九| av电影免费在线观看| 国产亚洲精品va在线观看| 色综合视频在线| 日韩欧美中文一区二区| 中文字幕在线2018| 91福利精品视频| www五月天com| 欧美日韩国产黄| 国产午夜久久久| 亚洲精品va在线观看| 最新日韩免费视频| 国产欧美日韩亚州综合| 亚洲AV无码国产成人久久| 99在线精品一区二区三区| 少妇精品无码一区二区三区| 国产成人午夜片在线观看高清观看| 免费成年人高清视频| 免费在线看成人av| www.99在线| 日本va欧美va精品| 91日韩视频在线观看| 久久蜜桃精品| 50路60路老熟妇啪啪| 鲁大师影院一区二区三区| 日本精品一区在线观看| 99av国产精品欲麻豆| 欧美日韩性生活片| 亚洲伦伦在线| 乱妇乱女熟妇熟女网站| 国产视频欧美| 少妇人妻互换不带套| 久久综合五月| 看欧美ab黄色大片视频免费| 视频一区二区中文字幕| 九九热免费精品视频| 久久精品99国产精品日本| 污污的视频免费| 国产一区在线观看视频| 国产调教打屁股xxxx网站| 粉嫩av一区二区三区| 国产精品入口麻豆| 99国产精品久久久| 成人乱码一区二区三区av| 国产视频不卡一区| 日本黄色录像视频| 一区二区三区欧美日| 日韩欧美a级片| 日本韩国一区二区| 一级黄色片视频| 日韩欧美黄色影院| 亚洲人妻一区二区三区| 国产一区二区三区久久精品| 老司机av在线免费看| 欧美激情女人20p| 亚洲女同志freevdieo| 国产美女精品视频免费观看| 国产亚洲字幕| 精品国产乱码久久久久久久软件| 国产成人调教视频在线观看| 在线视频一区观看| 在线国产精品一区| 天天爱天天操天天干| 国产一区二区三区免费看| 日韩少妇一区二区| 中文无字幕一区二区三区| 男人的天堂久久久| 精品久久久国产精品999| 久久久久久av无码免费看大片| 777久久久精品| 头脑特工队2免费完整版在线观看| 日韩中文有码在线视频| heyzo中文字幕在线| 日韩女优在线播放| 视频一区视频二区欧美| 欧美一区二区三区精美影视| 欧美.日韩.国产.一区.二区| 久久网站免费视频| 国产精品66部| 国产伦理片在线观看| 一区二区三区在线不卡| 欧美日韩 一区二区三区| 精品少妇一区二区三区免费观看| 黄色片视频在线观看| 欧美精品videossex88| 黄色成人小视频| 国产精品推荐精品| 国产精品久久久久无码av| 国产黄色一级网站| 国产99久久久国产精品免费看| 人妻视频一区二区| 偷拍日韩校园综合在线| 99精品久久久久久中文字幕| 国产亚洲欧美aaaa| 亚洲第一av| 国产精品一区视频| 中文字幕一区二区三区久久网站| 国产v亚洲v天堂无码久久久 | 欧美性生交片4| 天堂网av2014| 欧美激情按摩在线| 色狠狠一区二区三区| 婷婷精品国产一区二区三区日韩| 日韩一级网站| 女同性恋一区二区三区| 亚洲一二三四在线观看| 国产精品久久久久久在线 | gogo在线高清视频| 国产精品露脸自拍| 久久99影视| 凹凸国产熟女精品视频| 99久久国产综合精品色伊| 国产亚洲欧美精品久久久久久| 日韩一区二区免费在线电影| 免费的黄网站在线观看| 国产精品一二三在线| 大色综合视频网站在线播放| 国产成人亚洲精品无码h在线| 91亚洲国产成人精品一区二三| 久久久99精品| 精品日产卡一卡二卡麻豆| 日本aa在线| 国产精品国产精品国产专区蜜臀ah | 天天干天天舔天天操| 欧美午夜片欧美片在线观看| 视频一区二区免费| 久久久久久成人精品| 欧美成人基地| 欧美少妇性生活视频| 国产色产综合产在线视频| 最新在线中文字幕| 深夜福利国产精品| 成人黄色理论片| 免费的av在线| 成人免费毛片aaaaa**| 欧美成人aaaaⅴ片在线看| 亚洲国内高清视频| 韩国美女久久| 亚洲电影网站| 狠狠色综合色综合网络| 草视频在线观看| 亚洲护士老师的毛茸茸最新章节 | 亚洲国产综合色| 日本福利在线观看| 国产精品入口夜色视频大尺度| 欧美国产一区二区三区激情无套| 日韩欧美中文视频| 岛国av午夜精品| 91视频在线观看| 4444kk亚洲人成电影在线| 亚洲精品美女| 天堂资源在线视频| 日韩一级在线观看| 日韩电影毛片| 一本一道久久a久久精品综合| 国产精品66部| 无码人妻久久一区二区三区| 久久久国产成人精品| 国产精品男女| 自拍偷拍21p| 亚洲一级二级三级在线免费观看| 久久精品a一级国产免视看成人 | 欧美激情精品久久久久久久变态 | 99精品视频在线免费播放| 欧美视频在线观看视频| 日本一区二区视频在线观看| 国产成人精品av在线观| 日本中文字幕成人| 欧美日韩国产亚洲一区| 色哟哟精品观看| 欧美不卡一区二区| free欧美| 日韩 欧美 视频| 国产精品视频一区二区三区不卡| 午夜精品久久久久久久99| 国产精品91久久久|