nutz在 POJO 中配置多对多映射

在 POJO 中配置多对多映射

在 POJO 类中字段中增加注解 @ManyMany:


@Table("t_food")

public clasFood extends Pojo {


    @ManyMany(target = Pet.class, relation = "t_pet_food", from = "foodid", to = "petid")

    private List<Pet> pets;


    public List<Pet> getPets() {

        return pets;

    }


    public void setPets(List<Pet> pets) {

        this.pets = pets;

    }


}

在 Food 对象中必须存在一个 List<Pet> 类型的字段,你的多对多映射就需要配置在这个字段上。通过 @ManyMany 注解告诉 Nutz.Dao 对象 Food 和 Pet 之间的关系,其中:


target 表示你要映射的对象类型

relation 为中间数据表的表名,它也支持动态表名

from 是中间数据表的字段名,这个字段将储存主对象的主键(上例的 Food 的主键)

to 是中间数据表的字段名,这个字段将储存映射对象的主键(上例的 Pet 的主键)

因此:


数据库中必须存在一个中间表 t_pet_food

该表有一个字段 foodid 对应到 Food 对象的主键

该表有一个字段 petid 对应到 Pet 对象的主键

Nutz.Dao 通过 @ManyMany 这四个属性了解到:

目标的 POJO 类 : Pet

关联表(或者说:中间表):t_pet_food

关联表的 foodid 字段对应到是本 POJO (Food)主键

关联表的 petid 字段对应到是目标 POJO (Pet) 主键

NutDao 是如何连接关联表的

比如,下面的例子


我们有两个 POJO

public class Pet {

    @Id

    public int id;

    @Name

    public String name;

}

//-------------------------------

public class Food {

    @Id

    public int id;

    @Name

    public String name;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值