Hibernate JPA将法语字符从CLOB转换为字符串列

Hibernate JPA将法语字符从CLOB转换为字符串列,hibernate,jpa,escaping,iso-8859-1,french,Hibernate,Jpa,Escaping,Iso 8859 1,French,我对多语言数据库有以下问题。我需要将每种语言的属性文件存储到数据库中。我在实体中使用CLOB数据类型和字符串字段,在@PrePersist和@PreUpdate中将java.util.Properties转换为字符串,在@PostLoad中,我将其从字符串转换为属性。这对德语本地化很有效,但对法语不起作用。可能值得一提的是,我在任何地方都使用ISO8859-1编码 @Lob // length is there only for hypersonic sql (junit tests), oth

我对多语言数据库有以下问题。我需要将每种语言的属性文件存储到数据库中。我在实体中使用CLOB数据类型和字符串字段,在@PrePersist和@PreUpdate中将java.util.Properties转换为字符串,在@PostLoad中,我将其从字符串转换为属性。这对德语本地化很有效,但对法语不起作用。可能值得一提的是,我在任何地方都使用ISO8859-1编码

@Lob
// length is there only for hypersonic sql (junit tests), otherwise clob(255) is generated
@Column(name = "PROPERTIES_BLOB", length = 65536, nullable = false)
private String blob;

@Transient
private Properties properties;

@PostLoad
public void postLoad() throws IOException
{
    try (StringReader reader = new StringReader(blob))
    {
        this.properties = new Properties();
        this.properties.load(reader);
    }
}
我试过逃避特殊的法语字符,然后clob在我看来是好的。但是,当我将数据加载到实体中时,JPA取消了字符的替换,并将法语字符弄糟了

我通过将clob转换为blob并将实体中的列转换为byte[]数组解决了这个问题,这使我能够解决这个问题,并使用Properties.load(InputStream stream)方法,即使对于法语字符也可以


然而,我的问题是如何通过将clob保持在DB中来管理它(它清楚地显示了它包含的内容等等)。我需要强制JPA或hibernate在将数据从clob写入字符串时不要取消对字符的替换。它有一些配置属性吗?

尝试向数据源url添加编码,如

jdbc:mysql://127.0.0.1:3306/databaseName?characterEncoding=ISO8859-一,


顺便说一下,最佳实践是使用
UTF-8
编码。考虑把你的应用程序转换成UTF-8/P>好点,但不幸的是我不能使用这个解决方案。我一直坚持使用blob和字节数组。顺便说一句,这不是属性加载的问题,当blob值隐式转换为字符串时出现了问题