gpt4 book ai didi

java - 内联抽象类型时根据子类使用不同的投影

转载 作者:行者123 更新时间:2023-12-02 03:41:43 26 4
gpt4 key购买 nike

我有以下实体(省略不相关部分):

@Entity    
public class Chart {

@ManyToOne
private Parameter parameter;

}

@Entity
@DiscriminatorColumn(name="category")
public abstract class Parameter {

private String label;

@OneToMany(mappedBy="parameter")
private Set<TimeSerie> timeSeries = new HashSet<TimeSerie>();

...
}

@Entity
@DiscriminatorValue(value="analog")
public class AnalogParameter extends Parameter {

private String resolution;

}

@Entity
@DiscriminatorValue(value="digital")
public class DigitalParameter extends Parameter {
...
}

以及以下投影和嵌套投影:

@Projection(name = "parameterInlinedChart, types = { Chart.class })
public interface ParameterInlinedChart {
TimeSeriesInlinedParameter getParameter();
}

@Projection(name = "timeSeriesInlinedParameter , types = { Parameter.class })
public interface TimeSeriesInlinedParameter {
...
}

我希望在使用“parameterInlinedChart”投影时使抽象 Parameter 类的子类特定的属性显示在 JSON 输出上。

使用上面的示例,如果参数的类型为 AnalogParameter,我希望拥有 AnalogParameter 的“分辨率”属性。

如果参数的类型为 DigitalParameter,则只需在“timeSeriesInlinedParameter”投影上添加此属性就会引发异常

我尝试创建 AnalogParameter 和 DigitalParameter 独有的投影但我不知道如何告诉“parameterInlinedChart”投影根据要序列化的子参数类的类型有条件地使用权利。

这可能吗?

这个问题可能不太容易理解,如果需要我可以提供更多细节。

最佳答案

目前这是不可能的。我创建了an Improvement request为此,甚至在 a Pull Request 中实现了这一点。诚然,这需要对 Jackson2 序列化模块的现有结构进行大量更改,并引入一个新字段来支持投影层次结构,因此尚不清楚何时合并。

如果这对您很重要,也许您可​​以为 JIRA 问题投票。

关于java - 内联抽象类型时根据子类使用不同的投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36773283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com