[@Basic] 用于声明属性的存取策略: 表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的 getXxxx()方法, 默认即为@Basic @Basic(fetch=FetchType.EAGER) 即时获取(默认的存取策略) @Basic(fetch=FetchType.LAZY) 延迟获取 @Basic(optional=false) optional:表示该属性是否允许为 null,默认为 true 示例: @Basic(optional=false) public String getAddress() { return address; }
package sun.rain.amazing.javax.anno.domain; import lombok.Data; import javax.persistence.*; /** * @author sunRainAmazing */ @Entity @Data public class UserBasic { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; /** * @Entity 下 默认的属性注解 * * @Basic * fetch * (可选)定义字段或属性的值是否应该 懒加载 或 热提取。 * optional * 定义字段或属性的值是否为空。默认为true(可以为空) */ @Basic private String username; private String email; }
/* CREATE TABLE `user_basic` ( `id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(255) DEFAULT NULL, `username` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 */