@Table和@Entity出现的问题

1.简介

首先我们来了解一下这两个注解

用法一:实体类上同时标注 @Table和@Entity注解

1.@table : 这个是标注在类上的,是用于实体类和表之间的映射关系
用法:@Table(name=“数据库表名称”)

2.@Entity:标注在类上(用于标注这是一个实体类)

在这里插入图片描述
这样的话:在写hql的时候要用实体类的名字
在这里插入图片描述

用法二:实体类上标注@Entity注解

@Entity(name=“数据库表名称”)

在这里插入图片描述
这样的话:在写hql的时候要用数据库表中的名字

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLite的@TableField是Android Room库中用来描述数据库表字段的一种注解。Room是一个用于数据持久化的库,它将ORM(对象关系映射)的概念引入到Android应用中,使得数据操作更加方便和直观。 @TableField注解用于在Java或Kotlin的实体类(Entity)中声明一个字段,它会对应数据库表中的一个列。这个注解提供了关于字段的各种信息,例如: 1. **name**: 必须,指定字段在数据库表中的名称。 2. **type**: 可选,默认为String类型,可以设置为Integer、Long、Float、Double、Blob、Boolean等。 3. **nullable**: 可选,默认为true,表示字段是否可以有NULL值。 4. **primaryKey**: 可选,如果字段应该被设置为表的主键,设为true。 5. **autoValue**: 可选,如果字段值由其他字段自动计算得出,设为true。 6. **defaultValue**: 可选,指定字段的默认值。 7. **foreignKey**: 可选,用于关联其他表,表示外键引用。 使用示例: ```java @Dao public interface MyTableDao { @Insert void insert(User user); @Query("SELECT * FROM users WHERE id = :id") User getUserById(@TableField(name = "id", type = Long.class, primaryKey = true) long id); } @Entity(tableName = "users") data class User( @PrimaryKey(autoGenerate = true) @TableField(name = "user_id") // 使用别名user_id作为主键 var id: Long, @TableField(name = "username", nullable = false) val username: String, @TableField(name = "email", defaultValue = "user@example.com") var email: String ) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值