逗号分隔的字符串与 H2 数据库
Posted
技术标签:
【中文标题】逗号分隔的字符串与 H2 数据库【英文标题】:Comma separated string with H2 Database 【发布时间】:2013-01-29 12:49:53 【问题描述】:我正在编写针对 H2 的测试并在生产环境中使用 mysql。
我有一个这样的实体:
public class User
private Integer id;
private String username;
private Set<String> roles;
我想将我的集合序列化为逗号分隔的字符串。我注意到 h2 文档中的 other_type 但不确定该怎么做。
有什么帮助吗?
谢谢
编辑:实际上我正在使用另一个基于 JDBC 的库。似乎使用了 ResultSet 的 setObject 和 getObject 方法,但不确定如何处理它。
【问题讨论】:
您的意思是要将Set<String> roles
存储为逗号分隔的列表吗?列表可以有多大?如果只有几百个条目,那么使用VARCHAR(32000)
可能就足够了(MySQL 最多支持 65536,H2 没有限制)。
【参考方案1】:
我建议使用 VARCHAR(32000)。 MySQL 和 H2 都支持这一点。请注意,32000 只是限制,并不意味着使用了这么多空间。
【讨论】:
谢谢,varchar 适合我的情况,但不知道如何序列化。 你的意思是,如何将Set<String>
转换为逗号分隔的字符串?
我知道如何转换,但重点是我想使用 setObject(myRoleSet)
而不自己转换。
你不能。 setObject
将为 H2 使用对象序列化,我不知道它会对 MySQL 做什么。在任何情况下,它都不会将其转换为逗号分隔值。以上是关于逗号分隔的字符串与 H2 数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何仅在 VBA 逗号分隔列表中的字符串(而不是数字)上加上引号?