BeetlSql中的命名转换和联合主键

       本文参考BeetlSql官方网站,官网网站请点击这里~


一、命名转换 

      Beetlsql默认提供了三种列名和属性名的映射类:1、DefaultNameConversion ,数据库名和java属性名保持一致,例如数据库表User,对应Java类也是User,数据库列是name,则java属性也是name,反之亦然。2、UnderlinedNameConversion,将数据库下划线去掉,首字母大写,如数据库是SYS_USER,则会改成SysUser。3、JPA2NameConversion ,支持JPA方式的映射,适合不能确定的映射关系。当然,如果以上三个都不合适,还可以自定义命名转化。一般来讲,建议使用UnderlinedNameConversion。

       在使用org.beetl.sql.core.JPA2NameConversion作为命令转化规则时,可以使用以下JPA标签来帮助解析实体类到数据库的转换:1、javax.persistence.Table;2、javax.persistence.Column;3、javax.persistence.Transient

       规则如下:1、在类名前使用Table注解映射的表名,例如:@Table(name = "XZW"),表示映射的表名是XZW;2、忽略静态变量以及被@Transient注解的属性;3、默认属性名与库表的字段名保持一致,如果不一致时,可以使用@Column注解。例如:

@Table(name = "XZW")
public class TestEntity implements Serializable {
    public static String S = "SSS";
    private String id;
    @Column(name = "login_name")
    private String loginName;
    private String password;
    private Integer age;
    private Long ttSize;
    private byte[] bigger;
    private String biggerClob;
    @Transient
    private String biggerStr;
    @AssignID
    public String getId() {
        return id;
    }
    getter setter...
}

二、联合主键

       BeetlSql支持复合主键,无需像其他dao工具那样创建一个特别的主键对象,主键对象就是实体对象本身。例如:

CREATE TABLE `party` (
  `id1` int(11) NOT NULL,
  `id2` int(11) NOT NULL,
  `name` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id1`,`id2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
public class Party  {
    @AssignID
    private Integer id1 ;
    @AssignID
    private Integer id2 ;
    private String name ;
    //忽略其他 getter setter方法
}

      根据主键获取Party:

Party key = new Party();
key.setId1(1);
key.setId2(2);
Party party = sql.unique(Party.class, key);

 

你可能感兴趣的:(beetl)