我刚刚将我所有的java.math.BigDecimal
用法转换为javax.money.MonetaryAmount
(它们代表货币)。我目前在MoneyUtils
的帮助下“假设”货币为USD,以避免添加仅包含“USD”的额外数据库列。这可以在接下来的2个片段中看到。
@Converter(autoApply = true)
public class MonetaryAmountConverter
implements AttributeConverter<MonetaryAmount, BigDecimal> {
@Override
public BigDecimal convertToDatabaseColumn(final MonetaryAmount monetaryAmount) {
return DefaultUtils.defaultOrNull(
monetaryAmount,
ma -> ma.getNumber().numberValue(BigDecimal.class));
}
@Override
public MonetaryAmount convertToEntityAttribute(final BigDecimal monetaryAmountValue) {
if (monetaryAmountValue == null) {
return null;
} else {
return MoneyUtils.of(monetaryAmountValue);
}
}
}
public final class MoneyUtils {
public static final CurrencyUnit DOLLAR = Monetary.getCurrency(Locale.US);
public static MonetaryAmount of(@NonNull final BigDecimal value) {
return Money.of(value, MoneyUtils.DOLLAR);
}
}
我有这个@Repository
方法,它应该给我一个总和,如果没有行匹配,它可能是null
:
@Query("query that can return null or a numeric")
MonetaryAmount sumSomeData();
问题是它没有通过我的< code > MonetaryAmountConverter 。我尝试直接在方法中添加一个< code>@Convert,但是它不起作用。
@Query("query that can return null or a numeric")
@Convert(converter = MonetaryAmountConverter.class)
MonetaryAmount sumSomeData();
因此,带有< code > @ Converter(autoApply = true)的< code>AttributeConverter似乎适用于JPA实体字段,但不适用于方法返回类型,即使将< code>@Convert添加到方法签名中也是如此。
您可以使用构造函数表达式:
SELECT 子句标识要作为查询结果返回的对象和值。除非另有说明,否则第 11.4 节 “表达式”中讨论的表达式都是有效的选择表达式。参阅第 11.10 节 “查询 API”,了解有关根据 SELECT 子句中指定的值类型处理结果的信息。
有一种特殊的表达式类型只在select子句中有效。Hibernate称之为“动态实例化”。JPQL支持其中一些特性,并称之为“构造函数表达式”
一般示例:
select new Person(user.name, address)
from User as user
left join user.address as address
在您提问之前,不,您不能调用方法,只能调用构造函数。此外,您需要考虑这样一个事实,即您的查询可能返回null
。您可以编写一个包装类。
java prettyprint-override">public final class MonetaryAmountWrapper {
public MonetaryAmountWrapper(final BigDecimal value) {
this.monetaryAmount = Money.of(value, MoneyUtils.DOLLAR);
}
private final MonetaryAmount monetaryAmount;
}
我已经看到,当我们使用或时,JOOQ可以自动返回POJO 但是有可能将复杂查询的结果转换成多个POJO吗? 我测试了方法,它工作得很好。但我没有支持对象。
5.5 结果的类型转换 类型转换(Formatter机制)是WebMagic 0.3.2增加的功能。因为抽取到的内容总是String,而我们想要的内容则可能是其他类型。Formatter可以将抽取到的内容,自动转换成一些基本类型,而无需手动使用代码进行转换。 例如: @ExtractBy("//ul[@class='pagehead-actions']/li[1]//a[@class='socia
问题内容: 我从JavaScript进行$ getJSON调用得到以下结果。如何在JavaScript中将start属性转换为正确的日期? [{“ id”:1,“ start”:“ / Date(1238540400000)/”},{“ id”:2,“ start”:“ / Date(1238626800000)/”}] 谢谢! 问题答案: 您需要从字符串中提取数字,并将其传递给Date : 这些
本文向大家介绍sqlalchemy 将结果转换成字典,包括了sqlalchemy 将结果转换成字典的使用技巧和注意事项,需要的朋友参考一下 示例 在SQLAlchemy核心中,结果为RowProxy。如果您需要显式词典,可以致电dict(row)。 首先为示例进行设置: 然后从结果行创建字典:
问题内容: 我正在尝试使用该包将Go结构转换为JSON,但我得到的只是。我敢肯定这是完全显而易见的,但我看不到。 然后,当我尝试运行它时,我得到以下信息: 问题答案: 您需要导出的字段,以便在包装可以看到它。将字段重命名为。 输出:
问题内容: 我试图在Go中创建一个通用方法,该方法将填充来自的使用数据。例如,方法签名和用法可能类似于: 我知道可以使用JSON作为中介来完成;还有另一种更有效的方法吗? 问题答案: 最简单的方法是使用https://github.com/mitchellh/mapstructure 如果您想自己做,则可以执行以下操作: http://play.golang.org/p/tN8mxT_V9h