Skip to content

Commit 206494b

Browse files
committed
add support AbstractEntity for JAVA - EntityTemplate
1 parent b3001fa commit 206494b

File tree

3 files changed

+52
-3
lines changed

3 files changed

+52
-3
lines changed

doc/SmartCode-Spring-Boot.yml

+10-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Author: Ahoo Wang
33
DataSource:
44
Name: DbTable
55
Parameters:
6-
DbName: user_db
6+
DbName: smartsql_db
77
DbProvider: MySql
88
ConnectionString: Data Source=**;database=smartsql_db;uid=root;pwd=**;Charset=utf8;SslMode=none
99
Language: Java
@@ -87,6 +87,15 @@ Build:
8787
DotSplit: true
8888
Name: '{{Items.CurrentTable.ConvertedName}}'
8989
Extension: '.java'
90+
Parameters:
91+
AbstractEntity:
92+
Name: AbstractEntity
93+
Package: net.smartsql.code
94+
Properties:
95+
- id
96+
- createTime
97+
- modifiedTime
98+
- deleted
9099

91100
SqlMap:
92101
Type: Table

src/SmartCode.Generator/DbTypeConverter/DbTypeMap.xml

+2
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,7 @@
382382
<!-- Java-Language Start-->
383383
<Database DbProvider="MySql" Language="Java">
384384
<DbType Name="text" To="String"/>
385+
<DbType Name="json" To="String"/>
385386
<DbType Name="varchar" To="String"/>
386387
<DbType Name="date" To="Date"/>
387388
<DbType Name="datetime" To="Date"/>
@@ -396,6 +397,7 @@
396397
<DbType Name="decimal" To="BigDecimal"/>
397398
<DbType Name="float" To="float"/>
398399
<DbType Name="timestamp" To="Timestamp"/>
400+
<DbType Name="blob" To="byte[]"/>
399401
</Database>
400402
<Database DbProvider="PostgreSql" Language="Java">
401403
<DbType Name="bool" To="Boolean"/>

src/SmartCode.Generator/RazorTemplates/Java/Entity.cshtml

+40-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,34 @@
66
var project = Model.Project;
77
var buildTask = Model.Build;
88
var table = Model.GetCurrentTable();
9+
10+
bool useAbstractEntity = false;
11+
String abstractEntityName = "";
12+
String abstractEntityPackage = "";
13+
ISet<String> abstractEntityProperties = new HashSet<string>();
14+
if (buildTask.Parameters.TryGetValue("AbstractEntity", out var abstractEntity))
15+
{
16+
useAbstractEntity = true;
17+
var abstractEntityParams = (Dictionary<Object, Object>) abstractEntity;
18+
if (!abstractEntityParams.TryGetValue("Name", out Object _abstractEntityName))
19+
{
20+
throw new ArgumentException("AbstractEntity.Name can not be null.");
21+
}
22+
abstractEntityName = _abstractEntityName.ToString();
23+
if (!abstractEntityParams.TryGetValue("Package", out var _abstractEntityPackage))
24+
{
25+
throw new ArgumentException("AbstractEntity.Package can not be null.");
26+
}
27+
abstractEntityPackage = _abstractEntityPackage.ToString();
28+
if (!abstractEntityParams.TryGetValue("Properties", out var _abstractEntityProperties))
29+
{
30+
throw new ArgumentException("AbstractEntity.Properties can not be null.");
31+
}
32+
((List<Object>) _abstractEntityProperties).ForEach(p =>
33+
{
34+
abstractEntityProperties.Add(p.ToString());
35+
});
36+
}
937
}
1038

1139
@functions {
@@ -37,19 +65,29 @@ import java.math.BigDecimal;
3765
import java.sql.Timestamp;
3866
import java.util.UUID;
3967
import java.util.Date;
68+
@if (useAbstractEntity)
69+
{
70+
<text>import @abstractEntityPackage;</text>
71+
}
4072

41-
import lombok.Builder;
4273
import lombok.Data;
4374
import lombok.ToString;
4475

4576
@table.GetJavaSummary()
4677
@@Data
47-
@@Builder
4878
@@ToString
4979
public class @table.ConvertedName
80+
@if (useAbstractEntity)
81+
{
82+
<text>extends @abstractEntityName</text>
83+
}
5084
{
5185
@foreach (var column in table.Columns)
5286
{
87+
if (useAbstractEntity && abstractEntityProperties.Contains(column.ConvertedName))
88+
{
89+
continue;
90+
}
5391
<text>
5492
@column.GetJavaSummary()
5593
private @(ConvertLangType(column)) @column.ConvertedName;

0 commit comments

Comments
 (0)