如何在Android房间中拥有ID的独特字段?

发布于 2025-02-12 21:15:01 字数 460 浏览 1 评论 0原文

我想为ID实现唯一的AUDIO_ID。

这是我的实体课程

data class Members(
    @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") val id: Int?,
    var title: String,
    var artist: String,
    var album: String,
    @ColumnInfo(name = "audio_id") val audioId: Int,
    val albumId: String
)

不起作用

@Entity(tableName = "playlist_members", indices = [Index(value = ["id","audio_id"], unique = true)])

:)

I want to achieve unique audio_id for the id.

Here is my entity class

data class Members(
    @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") val id: Int?,
    var title: String,
    var artist: String,
    var album: String,
    @ColumnInfo(name = "audio_id") val audioId: Int,
    val albumId: String
)

Tried this

@Entity(tableName = "playlist_members", indices = [Index(value = ["id","audio_id"], unique = true)])

not working :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好菇凉咱不稀罕他 2025-02-19 21:15:01

我做了一个测试示例。所以所有的工作。

我的实体

@Entity(tableName = "cards", indices = [Index(value = ["data"], unique = true)])
data class CardEntity(
   @PrimaryKey(autoGenerate = true)
   val id: Int = 0,
   val data: String
)

我的测试

@Test
fun testRun() = runBlocking {
    db.cardDAO().insert(CardEntity(data = "1"))
    var exception = false
    try {
        db.cardDAO().insert(CardEntity(data = "1"))
    } catch (e: SQLiteConstraintException) {
        exception=true
    }
    db.cardDAO().insert(CardEntity(data = "2"))
    Assert.assertTrue(exception)
    Assert.assertEquals(db.cardDAO().getAll().first().size, 2 )
}

,但您想获得ID唯一的AUDIO_ID。也许一样。

data class Members(
   @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "audio_id") val audioId = 0,
   var title: String,
   var artist: String,
   var album: String,
   val albumId: String
)

I've made a test example. So all work.

My entity

@Entity(tableName = "cards", indices = [Index(value = ["data"], unique = true)])
data class CardEntity(
   @PrimaryKey(autoGenerate = true)
   val id: Int = 0,
   val data: String
)

My test

@Test
fun testRun() = runBlocking {
    db.cardDAO().insert(CardEntity(data = "1"))
    var exception = false
    try {
        db.cardDAO().insert(CardEntity(data = "1"))
    } catch (e: SQLiteConstraintException) {
        exception=true
    }
    db.cardDAO().insert(CardEntity(data = "2"))
    Assert.assertTrue(exception)
    Assert.assertEquals(db.cardDAO().getAll().first().size, 2 )
}

But you want to get unique audio_id for the id. Perhaps it the same like.

data class Members(
   @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "audio_id") val audioId = 0,
   var title: String,
   var artist: String,
   var album: String,
   val albumId: String
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文