Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
Mybatis Jpa Extra
提交
2a1b40f9
M
Mybatis Jpa Extra
项目概览
MaxKey单点登录官方(MaxKeyTop)
/
Mybatis Jpa Extra
10 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
Mybatis Jpa Extra
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2a1b40f9
编写于
7月 13, 2023
作者:
M
MaxKey
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SnowFlakeIdGenerator(InetAddress inetAddress)
上级
4088deb5
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
28 addition
and
6 deletion
+28
-6
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/id/IdentifierGeneratorFactory.java
...rg/dromara/mybatis/jpa/id/IdentifierGeneratorFactory.java
+1
-1
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/id/SnowFlakeIdGenerator.java
...java/org/dromara/mybatis/jpa/id/SnowFlakeIdGenerator.java
+23
-0
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/persistence/provider/InsertProvider.java
...mara/mybatis/jpa/persistence/provider/InsertProvider.java
+4
-4
mybatis-jpa-extra-test/src/main/java/org/dromara/mybatis/jpa/test/entity/Students.java
...in/java/org/dromara/mybatis/jpa/test/entity/Students.java
+0
-1
未找到文件。
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/id/IdentifierGeneratorFactory.java
浏览文件 @
2a1b40f9
...
...
@@ -31,7 +31,7 @@ public class IdentifierGeneratorFactory {
register
(
IdStrategy
.
UUIDHEX
,
new
UUIDHexGenerator
());
register
(
IdStrategy
.
SERIAL
,
new
SerialGenerator
());
register
(
IdStrategy
.
SNOWFLAKEID
,
new
SnowFlakeIdGenerator
());
register
(
IdStrategy
.
DEFAULT
,
new
SnowFlakeIdGenerator
());
register
(
IdStrategy
.
DEFAULT
,
new
SnowFlakeIdGenerator
(
null
));
}
public
IdentifierGeneratorFactory
(
long
datacenterId
,
long
machineId
)
{
...
...
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/id/SnowFlakeIdGenerator.java
浏览文件 @
2a1b40f9
...
...
@@ -17,6 +17,8 @@
package
org.dromara.mybatis.jpa.id
;
import
java.net.InetAddress
;
import
java.net.NetworkInterface
;
import
java.util.Calendar
;
import
java.util.Date
;
import
org.joda.time.DateTime
;
...
...
@@ -64,6 +66,27 @@ public class SnowFlakeIdGenerator implements IdentifierGenerator{
public
SnowFlakeIdGenerator
()
{}
public
SnowFlakeIdGenerator
(
InetAddress
inetAddress
)
{
long
id
=
0L
;
try
{
if
(
null
==
inetAddress
)
{
inetAddress
=
InetAddress
.
getLocalHost
();
}
NetworkInterface
network
=
NetworkInterface
.
getByInetAddress
(
inetAddress
);
if
(
null
==
network
)
{
id
=
1L
;
}
else
{
byte
[]
mac
=
network
.
getHardwareAddress
();
if
(
null
!=
mac
)
{
id
=
((
0x000000FF
&
(
long
)
mac
[
mac
.
length
-
2
])
|
(
0x0000FF00
&
(((
long
)
mac
[
mac
.
length
-
1
])
<<
8
)))
>>
6
;
id
=
id
%
(
datacenterId
+
1
);
}
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
" getDatacenterId: "
+
e
.
getMessage
());
}
}
public
SnowFlakeIdGenerator
(
long
datacenterId
,
long
machineId
)
{
if
(
datacenterId
>
MAX_DATACENTER_NUM
||
datacenterId
<
0
)
{
throw
new
IllegalArgumentException
(
"datacenterId can't be greater than MAX_DATACENTER_NUM or less than 0"
);
...
...
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/persistence/provider/InsertProvider.java
浏览文件 @
2a1b40f9
...
...
@@ -60,18 +60,18 @@ public class InsertProvider <T extends JpaBaseEntity>{
||
fieldColumnMapper
.
getFieldType
().
startsWith
(
"byte"
)
)
&&
BeanUtil
.
getValue
(
entity
,
fieldColumnMapper
.
getFieldName
())==
null
&&
fieldColumnMapper
.
getGeneratedValue
()
==
null
)
{
&&
fieldColumnMapper
.
getGeneratedValue
()
==
null
)
{
//skip null field value
_logger
.
trace
(
"skip field value is null "
);
}
else
{
//have GeneratedValue and (value is null or eq "")
if
(
fieldColumnMapper
.
getGeneratedValue
()
!=
null
if
(
fieldColumnMapper
.
getGeneratedValue
()
!=
null
&&
(
BeanUtil
.
get
(
entity
,
fieldColumnMapper
.
getFieldName
())
==
null
||
BeanUtil
.
get
(
entity
,
fieldColumnMapper
.
getFieldName
())
==
""
))
{
GeneratedValue
generatedValue
=
listFields
.
get
(
i
).
getGeneratedValue
();
if
(
generatedValue
.
strategy
()
==
GenerationType
.
AUTO
)
{
GeneratedValue
generatedValue
=
listFields
.
get
(
i
).
getGeneratedValue
();
if
(
generatedValue
.
strategy
()
==
GenerationType
.
AUTO
)
{
if
(
MapperMetadata
.
identifierGeneratorFactory
.
getGeneratorStrategyMap
()
.
containsKey
(
generatedValue
.
generator
().
toLowerCase
()))
{
BeanUtil
.
set
(
entity
,
...
...
mybatis-jpa-extra-test/src/main/java/org/dromara/mybatis/jpa/test/entity/Students.java
浏览文件 @
2a1b40f9
...
...
@@ -23,7 +23,6 @@ import org.dromara.mybatis.jpa.persistence.JpaBaseEntity;
import
jakarta.persistence.Column
;
import
jakarta.persistence.Entity
;
import
jakarta.persistence.GeneratedValue
;
import
jakarta.persistence.GenerationType
;
import
jakarta.persistence.Id
;
import
jakarta.persistence.Table
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录