Это не что-то уникальное для Room - вместо этого Kotlin Цели аннотации :
Когда вы аннотируете свойство или параметр первичного конструктора, там это несколько Java элементов, которые сгенерированы из соответствующего Kotlin элемента, и, следовательно, несколько возможных мест для аннотации в сгенерированном Java байт-коде.
То есть @field:SerializedName("owner")
означает, что SerializedName("owner")
аннотация должна быть добавлена к самому базовому полю (а не, скажем, при использовании @get:
, где она будет присоединена к сгенерированному методу getOwner()
или по умолчанию @property:
, который, согласно той же странице, недоступен на Java, это то, что комната анализирует).