我在Hibernate中MapList时似乎遇到了问题,在我们的项目中,类Card包含类Answer,类Answer包含List<String>。List<String>可以通过Hibernate使用注解进行Map吗?我的意思是,因为它没有@Entity注解?问候
Card
Answer
List<String>
@Entity
neekobn81#
使用@ElementCollection:
@ElementCollection
@ElementCollection @CollectionTable(name="Nicknames", joinColumns=@JoinColumn(name="user_id")) @Column(name="nickname") public List<String> getNicknames() { ... }
wh6knrhe2#
尝试
@org.hibernate.annotations.CollectionOfElements( targetElement = java.lang.String.class ) @JoinTable( name = "foo", joinColumns = @JoinColumn(name = "foo_id") ) @org.hibernate.annotations.IndexColumn( name = "POSITION", base = 1 ) @Column(name = "baz", nullable = false) private List<String> arguments = new ArrayList<String>();
或参见this detail example
am46iovg3#
如果您愿意将它们存储在与JSON相同的列中(MySQL、PostgreSQL也支持索引和二进制JSON),则可以简单地使用io.hypersistence/hypersistence-utils-hibernate-52库。
io.hypersistence/hypersistence-utils-hibernate-52
@TypeDefs({ @TypeDef(name = "json", typeClass = JsonType.class) }) public class YourEntity { @Column(nullable = false) @Type(type = "json") private List<String> fieldName = List.of(); ... }
参见完整指南here
3条答案
按热度按时间neekobn81#
使用
@ElementCollection
:wh6knrhe2#
尝试
或参见this detail example
am46iovg3#
如果您愿意将它们存储在与JSON相同的列中(MySQL、PostgreSQL也支持索引和二进制JSON),则可以简单地使用
io.hypersistence/hypersistence-utils-hibernate-52
库。参见完整指南here