This commit is contained in:
Redkale
2017-03-02 16:03:29 +08:00
parent b463389733
commit e915a253f8
2 changed files with 31 additions and 31 deletions

View File

@@ -17,9 +17,8 @@ import org.redkale.source.*;
public class LoginUserRecord extends BaseEntity {
@Id
@GeneratedValue
@Column(comment = "UUID")
private String seqid = ""; //UUID
@Column(comment = "记录ID; 值=userid+'-'+UUID")
private String seqid = ""; //记录ID; 值=userid+'-'+UUID
@Column(updatable = false, comment = "C端用户ID")
private long userid; //C端用户ID
@@ -79,8 +78,9 @@ public class LoginUserRecord extends BaseEntity {
}
@Override
public String getTable(String table, Serializable userid) {
return getHashTable(table, (int) (((Long) userid) % 100));
public String getTable(String table, Serializable primary) {
String id = (String) primary;
return getHashTable(table, (int) (Long.parseLong(id.substring(0, id.indexOf('-'))) % 100));
}
private String getHashTable(String table, int hash) {

View File

@@ -17,6 +17,32 @@ import org.redkale.source.*;
@DistributeTable(strategy = UserDetail.TableStrategy.class)
public class UserDetail extends BaseEntity {
public static class TableStrategy implements DistributeTableStrategy<UserDetail> {
@Override
public String getTable(String table, UserDetail bean) {
return getTable(table, bean.getUserid());
}
@Override
public String getTable(String table, FilterNode node) {
Serializable id = node.findValue("userid");
if (id != null) return getTable(table, id);
return getHashTable(table, (Integer) node.findValue("#hash"));
}
@Override
public String getTable(String table, Serializable userid) {
return getHashTable(table, (int) (((Long) userid) % 100));
}
private String getHashTable(String table, int hash) {
int pos = table.indexOf('.');
return "platf_user." + table.substring(pos + 1) + "_" + (hash > 9 ? hash : ("0" + hash));
}
}
@Id
private long userid; //用户ID
@@ -84,30 +110,4 @@ public class UserDetail extends BaseEntity {
public void setCreatetime(long createtime) {
this.createtime = createtime;
}
public static class TableStrategy implements DistributeTableStrategy<UserDetail> {
@Override
public String getTable(String table, UserDetail bean) {
return getTable(table, bean.getUserid());
}
@Override
public String getTable(String table, FilterNode node) {
Serializable id = node.findValue("userid");
if (id != null) return getTable(table, id);
return getHashTable(table, (Integer) node.findValue("#hash"));
}
@Override
public String getTable(String table, Serializable userid) {
return getHashTable(table, (int) (((Long) userid) % 100));
}
private String getHashTable(String table, int hash) {
int pos = table.indexOf('.');
return "platf_user." + table.substring(pos + 1) + "_" + (hash > 9 ? hash : ("0" + hash));
}
}
}