Skip to content

Commit 8cae426

Browse files
authored
fix: make the id field backward compatible (#49)
Signed-off-by: tangyang9464 <[email protected]>
1 parent 846c3e1 commit 8cae426

File tree

4 files changed

+23
-26
lines changed

4 files changed

+23
-26
lines changed

README.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,16 @@ For Maven:
3636
<dependency>
3737
<groupId>org.casbin</groupId>
3838
<artifactId>jdbc-adapter</artifactId>
39-
<version>2.0.1</version>
39+
<version>LATEST</version>
4040
</dependency>
4141
```
4242

43+
**Notice:**
44+
45+
Since version 2.0.2, jdbc-adapter adds an ``id`` field to the database table structure by default.
46+
47+
If you want to upgrade to 2.0.2 - 2.2.0, you have to add the ``id`` field manually. It is recommended to add the ``id`` field. If you don't want to add the ``id`` field, please use 2.2.1+.
48+
4349
## Simple Example
4450

4551
```java

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@
197197
<dependency>
198198
<groupId>org.casbin</groupId>
199199
<artifactId>jcasbin</artifactId>
200-
<version>1.22.2</version>
200+
<version>LATEST</version>
201201
</dependency>
202202
<dependency>
203203
<groupId>mysql</groupId>

src/main/java/org/casbin/adapter/JDBCBaseAdapter.java

+14-24
Original file line numberDiff line numberDiff line change
@@ -152,22 +152,22 @@ protected void migrate() throws SQLException {
152152

153153
protected void loadPolicyLine(CasbinRule line, Model model) {
154154
String lineText = line.ptype;
155-
if (!line.v0.equals("")) {
155+
if (!"".equals(line.v0)) {
156156
lineText += ", " + line.v0;
157157
}
158-
if (!line.v1.equals("")) {
158+
if (!"".equals(line.v1)) {
159159
lineText += ", " + line.v1;
160160
}
161-
if (!line.v2.equals("")) {
161+
if (!"".equals(line.v2)) {
162162
lineText += ", " + line.v2;
163163
}
164-
if (!line.v3.equals("")) {
164+
if (!"".equals(line.v3)) {
165165
lineText += ", " + line.v3;
166166
}
167-
if (!line.v4.equals("")) {
167+
if (!"".equals(line.v4)) {
168168
lineText += ", " + line.v4;
169169
}
170-
if (!line.v5.equals("")) {
170+
if (!"".equals(line.v5)) {
171171
lineText += ", " + line.v5;
172172
}
173173

@@ -184,27 +184,17 @@ public void loadPolicy(Model model) {
184184
retry(ctx);
185185
}
186186
try (Statement stmt = conn.createStatement();
187-
ResultSet rSet = stmt.executeQuery("SELECT * FROM casbin_rule")) {
187+
ResultSet rSet = stmt.executeQuery("SELECT ptype,v0,v1,v2,v3,v4,v5 FROM casbin_rule")) {
188188
ResultSetMetaData rData = rSet.getMetaData();
189189
while (rSet.next()) {
190190
CasbinRule line = new CasbinRule();
191-
for (int i = 1; i <= rData.getColumnCount(); i++) {
192-
if (i == 2) {
193-
line.ptype = rSet.getObject(i) == null ? "" : (String) rSet.getObject(i);
194-
} else if (i == 3) {
195-
line.v0 = rSet.getObject(i) == null ? "" : (String) rSet.getObject(i);
196-
} else if (i == 4) {
197-
line.v1 = rSet.getObject(i) == null ? "" : (String) rSet.getObject(i);
198-
} else if (i == 5) {
199-
line.v2 = rSet.getObject(i) == null ? "" : (String) rSet.getObject(i);
200-
} else if (i == 6) {
201-
line.v3 = rSet.getObject(i) == null ? "" : (String) rSet.getObject(i);
202-
} else if (i == 7) {
203-
line.v4 = rSet.getObject(i) == null ? "" : (String) rSet.getObject(i);
204-
} else if (i == 8) {
205-
line.v5 = rSet.getObject(i) == null ? "" : (String) rSet.getObject(i);
206-
}
207-
}
191+
line.ptype = rSet.getObject(1) == null ? "" : (String) rSet.getObject(1);
192+
line.v0 = rSet.getObject(2) == null ? "" : (String) rSet.getObject(2);
193+
line.v1 = rSet.getObject(3) == null ? "" : (String) rSet.getObject(3);
194+
line.v2 = rSet.getObject(4) == null ? "" : (String) rSet.getObject(4);
195+
line.v3 = rSet.getObject(5) == null ? "" : (String) rSet.getObject(5);
196+
line.v4 = rSet.getObject(6) == null ? "" : (String) rSet.getObject(6);
197+
line.v5 = rSet.getObject(7) == null ? "" : (String) rSet.getObject(7);
208198
loadPolicyLine(line, model);
209199
}
210200
}

src/test/java/org/casbin/adapter/AdapterCreator.java

+1
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,4 @@ public JDBCAdapter createViaDataSource() throws Exception {
112112
return new JDBCAdapter(dataSource);
113113
}
114114
}
115+

0 commit comments

Comments
 (0)