Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions noark-orm/src/main/java/xyz/noark/orm/AnnotationEntityMaker.java
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,15 @@ else if (type == LongAdder.class) {
}
// 其他就是Json类型的.
else {
fm.setType(FieldType.AsJson);
fm.setWidth(fm.getColumn() == null ? 1024 : fm.getColumn().length());
Column column = fm.getColumn();
if (column==null){
fm.setWidth(1024);
}else if (column.length()==0){
//MysqlJson
fm.setType(FieldType.AsMysqlJson);
}else {
fm.getColumn().length();
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,5 +75,9 @@ public enum FieldType {
/**
* Blob类型
*/
AsBlob;
AsBlob,
/**
* mysqlJSON类型
*/
AsMysqlJson;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
* Copyright © 2018 www.noark.xyz All Rights Reserved.
*
* 感谢您选择Noark框架,希望我们的努力能为您提供一个简单、易用、稳定的服务器端框架 !
* 除非符合Noark许可协议,否则不得使用该文件,您可以下载许可协议文件:
*
* http://www.noark.xyz/LICENSE
*
* 1.未经许可,任何公司及个人不得以任何方式或理由对本框架进行修改、使用和传播;
* 2.禁止在本项目或任何子项目的基础上发展任何派生版本、修改版本或第三方版本;
* 3.无论你对源代码做出任何修改和改进,版权都归Noark研发团队所有,我们保留所有权利;
* 4.凡侵犯Noark版权等知识产权的,必依法追究其法律责任,特此郑重法律声明!
*/
package xyz.noark.orm.accessor.sql.mysql.adaptor;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import xyz.noark.orm.FieldMapping;
import xyz.noark.orm.accessor.sql.PreparedStatementProxy;

import java.sql.ResultSet;

/**
* MysqlJson类型属性
*
* @author songjie.zheng[39776756@qq.com]
* @since 3.4
*/
public class MysqlJsonAdaptor extends AbstractValueAdaptor<JSONObject> {
@Override
protected void toPreparedStatement(FieldMapping fm, PreparedStatementProxy pstmt, JSONObject jsonObject, int parameterIndex) throws Exception {
if (jsonObject == null) {
pstmt.setString(fm, parameterIndex, null);
} else {
String json = JSON.toJSONString(jsonObject);
pstmt.setString(fm, parameterIndex, json);
}
}

@Override
protected Object toParameter(FieldMapping fm, ResultSet rs) throws Exception {
String json = rs.getString(fm.getColumnName());
return JSONObject.parseObject(json, fm.getFieldClass());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* 感谢您选择Noark框架,希望我们的努力能为您提供一个简单、易用、稳定的服务器端框架 !
* 除非符合Noark许可协议,否则不得使用该文件,您可以下载许可协议文件:
*
* http://www.noark.xyz/LICENSE
* http://www.noark.xyz/LICENSE
*
* 1.未经许可,任何公司及个人不得以任何方式或理由对本框架进行修改、使用和传播;
* 2.禁止在本项目或任何子项目的基础上发展任何派生版本、修改版本或第三方版本;
Expand Down Expand Up @@ -38,6 +38,7 @@ public class ValueAdaptorManager {
ADAPTOR.put(FieldType.AsDouble, new DoubleAdaptor());
ADAPTOR.put(FieldType.AsDate, new DateAdaptor());
ADAPTOR.put(FieldType.AsJson, new JsonAdaptor());
ADAPTOR.put(FieldType.AsMysqlJson, new MysqlJsonAdaptor());
ADAPTOR.put(FieldType.AsLocalDateTime, new LocalDateTimeAdaptor());
ADAPTOR.put(FieldType.AsInstant, new InstantAdaptor());
ADAPTOR.put(FieldType.AsBlob, new BlobAdaptor());
Expand Down