/**
* Copyright (c) 2011-2014, hubin (jobob@qq.com).
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.baomidou.mybatisplus.test.mysql.entity;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.annotations.Version;
import com.baomidou.mybatisplus.enums.FieldStrategy;
/**
* <p>
* 测试用户类
* </p>
*
* @author hubin sjy
* @Date 2016-09-09
*/
/* 表名 value 注解【 驼峰命名可无 】, resultMap 注解测试【 映射 xml 的 resultMap 内容 】 */
@TableName(resultMap = "userMap")
public class User implements Serializable {
/* 表字段注解,false 表中不存在的字段,可无该注解 默认 true */
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/* 主键ID 注解,value 字段名,type 用户输入ID */
@TableId(value = "test_id")
private Long id;
/* 测试忽略验证 */
private String name;
private Integer age;
/*BigDecimal 测试*/
private BigDecimal price;
/* 测试下划线字段命名类型, 字段填充 */
@TableField(value = "test_type", validate = FieldStrategy.IGNORED)
@TableLogic(value = "-2") // 该注解为了测试逻辑删除、这里设置 -2 为删除值
private Integer testType;
@TableField(el = "role.id")
private Role role;
private String desc = "默认描述";
@Version
private Integer version;
// 或@TableField(el = "role,jdbcType=BIGINT)
@TableField(el = "phone, typeHandler=com.baomidou.mybatisplus.test.mysql.typehandler.PhoneTypeHandler")
private PhoneNumber phone;
public User() {
}
public User(String name) {
this.name = name;
}
public User(Integer testType) {
this.testType = testType;
}
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public User(Long id, String name) {
this.id = id;
this.name = name;
}
public User(Long id, Integer age) {
this.id = id;
this.age = age;
}
public User(Long id, String name, Integer age, Integer testType) {
this.id = id;
this.name = name;
this.age = age;
this.testType = testType;
}
public User(String name, Integer age, Integer testType) {
this.name = name;
this.age = age;
this.testType = testType;
}
/**
* 测试类型
*/
public static void main(String args[]) throws IllegalAccessException {
User user = new User();
user.setName("12306");
user.setAge(3);
System.err.println(User.class.getName());
Field[] fields = user.getClass().getDeclaredFields();
for (Field field : fields) {
System.out.println("===================================");
System.out.println(field.getName());
System.out.println(field.getType().toString());
field.setAccessible(true);
System.out.println(field.get(user));
}
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getTestType() {
return testType;
}
public void setTestType(Integer testType) {
this.testType = testType;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
public PhoneNumber getPhone() {
return phone;
}
public void setPhone(PhoneNumber phone) {
this.phone = phone;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + ", price=" + price + ", testType=" + testType
+ ", role=" + role + ", desc=" + desc + ", phone=" + phone + "]";
}
}