MyBatis - 解決逆向工程生成 xxxKey & xxxWithBlos 實體類

在做Mybatis 逆向工程生成 Javabean 時,結果發現生成多了一個 xxxKey 實體類,經過一番百度後知道了生成這個實體類的原因是表中存在聯合主鍵,然後爲了便於代碼的重構,把實體和實體的關係隔絕到兩個類,互相不干擾。

  • 生成類如圖

由於表 Answersheet 和表 Score 中都存在聯合主鍵,然後一個表直接生成對應的三個 JavaBean(xxx,xxxExample,xxxKey)。

如果想要正常生成,即不生成 xxxKey 實體類,只要在逆向工程的配置文件中的 context 標籤里加上這個 defaultModelType="flat" 屬性即可。(defaultModelType 爲控制生成類方式)。

<context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat">

  • 加上之後再生成一次,結果發現這個 xxxKey 實體類沒有了

 

補充一下

最近用mybatis的逆向工程生成代碼的時候,發現的類多了一個 xxxWithBlos 的類,經過了解,這是因爲數據庫表中的一個字段是text 類型,而 mybatis 逆向工程生成類時,會爲這個字段單獨生成一個 xxxWithBlos 的類。

原因

text類型長度最大是65535,如果不用 blob 類型,就不能保證不溢出。

解決

同理,用以上解決生成xxxKey的方法即可。但是經過實踐本人用以下方式不知道爲什麼是不可以的,如果上面的方式無效,可以嘗試下這種,也許可以,當然下面這種辦法我是行不通的,是第一種可以通過,目前未知原因。

<!-- 數據庫連接的信息:驅動類、連接地址、用戶名、密碼 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://ip:port/DBName" userId="root"
		password="root">
		<!-- 加入以下 -->
		<property name="nullCatalogMeansCurrent" value="true" />
</jdbcConnection>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章