Hai*_*ang 5 java hibernate jpa kotlin spring-boot
我在 Postgres 中有一个数组类型的字段:
categories | text[] | | |
Run Code Online (Sandbox Code Playgroud)
如何在实体类中声明该字段?
我在下面的文件中尝试过Product.kt,但它抛出错误[ERROR]:ERROR: relation "product_categories" does not exist
@ElementCollection
@Column(name = "categories")
var categories: List<String>? = emptyList()
Run Code Online (Sandbox Code Playgroud)
我的目的是将字符串数组保存为实体的一个字段,我不想做任何与“一对多”相关的事情。
如果您知道任何 Java 版本的解决方案并且它有效,我也会接受答案。谢谢
这不起作用,@ElementCollection因为它总是尝试使用另一个表。您需要的是自定义类型。为此,您需要以下依赖项:
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>${hibernate-types.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
然后你可以定义自己的类型:
import com.vladmihalcea.hibernate.type.array.StringArrayType
@TypeDefs({
@TypeDef(
name = "string-array",
typeClass = StringArrayType.class
)
})
@Entity
class YourEntity {
@Type( type = "string-array" )
@Column(
name = "categories",
columnDefinition = "character varying[]"
)
var categories: Array<String>;
}
Run Code Online (Sandbox Code Playgroud)
我还没有尝试过使用 a List,因为它映射到Array. 更多信息在此答案中。
| 归档时间: |
|
| 查看次数: |
2765 次 |
| 最近记录: |