介绍
本来想用
JPA Metamodel generator但是觉得看不惯就照着TypedSort写了个工具类
- 项目中很多地方用到了实体的key,而且直接写的魔法值。为了处理魔法值跟字段可能的变动导致的不可预测错误,所以有了这个工具。
工具依赖
2.0.3开始存在
<!-- TypedBean依赖 --><dependency><groupId>cn.jdevelops</groupId><artifactId>utils-spring</artifactId><version>${last.version}</version><!-- <version>2.0.3</version>--></dependency><!-- ColumnUtil依赖 --><dependency><groupId>cn.jdevelops</groupId><artifactId>utils-map</artifactId><version>2.0.3</version></dependency>
工具类
cn.jdevelops.spring.entity.**TypedBean.java**cn.jdevelops.map.core.bean.**ColumnUtil.java**
TypedBean
依赖类
cn.jdevelops.spring.springutil.*
- LazyStreamable.java
- MethodInvocationRecorder.java
- Optionals.java
- Pair.java
- Streamable.java
使用
```java package cn.jdevelops.spring.entity;
import junit.framework.TestCase; import lombok.Getter; import lombok.Setter;
public class TypedBeanTest extends TestCase {
public void testOf() {assertEquals(TypedBean.of(Apply.class).getKey(Apply::getAge),"age");assertEquals(TypedBean.of(Apply.class).getKey(Apply::getName),"name");assertEquals(TypedBean.of(Help.class).getKey(Help::getAuthor),"author");assertEquals(TypedBean.of(Help.class).getKey(Help::getTitle),"title");}@Getter@Setterpublic class Apply {private String age,name;}@Getter@Setterpublic class Help {private String author,title;}
}
<a name="IxciC"></a>## **ColumnUtil**> 获取一些[特殊父类](https://github.com/en-o/Jdevelops/blob/master/jdevelops-utils/utils-map/src/test/java/cn/jdevelops/map/core/bean/ColumnUtilTest.java)的属性有点问题> - **TypedBean可以**> - **2.0.5 已修复**<a name="Z0pLP"></a>### 使用```javaimport junit.framework.TestCase;import lombok.Getter;import lombok.Setter;public class ColumnUtilTest extends TestCase {public void testOf() {assertEquals(ColumnUtil.getFieldName(Apply::getAge),"age");assertEquals(ColumnUtil.getFieldName(Apply::getName),"name");assertEquals(ColumnUtil.getFieldName(Apply::getMySex),"sex");assertEquals(ColumnUtil.getFieldName(Apply::getMySex,true),"sex");assertEquals(ColumnUtil.getFieldName(Help::getAuthor),"author");assertEquals(ColumnUtil.getFieldName(Help::getTitle),"title");assertEquals(ColumnUtil.getFieldName(Help::getMyTest,true),"my_test");}@Getter@Setterpublic static class Apply {private String age,name;@ColumnUtil.TableField(value = "sex")private String mySex;}@Getter@Setterpublic static class Help {private String author,title,myTest;}}

