目前,我正在嘗試學習Spring(Boot)。在我的應用程式中,我選擇了Postgres作為我的資料庫。
雖然我的大部分類、JoinColums等都運行良好,但我無法理解@ElementCollection注解的含義。據我所知,它創建了第二個表來解決具有1-n關系的Lists。但除此之外,jpa將我的List翻譯成了一個帶有整數的表。
@Getter
@Setter
@ToString
@NoArgsConstructor[/span
@AllArgsConstructor[/span
@Builder
@Entity@Table(name = "mts_values"/span>)
public class MtsValue extends BaseEntity {
@GeneratedValue[/span
private Long valueId;
@ElementCollection(targetClass = Double.class)
@Column(name = "value")
私人串列<Double> values。
}
這是資料庫中的兩個列,右邊的是MtsValue表,另一個是由@ElementCollection注解創建的列
如果有人能解釋一下,我如何讓JPA停止將我的Doubles翻譯成ints就好了:)
預先感謝!
問候 Pascal
uj5u.com熱心網友回復:
我有同樣的問題。基本上目標類是 "可選的",它用于指定具有泛型的Java物件,所有的物件,除了集合。如果它是一個集合,就沒有必要指定目標類。 在我的例子中,它只是把指定它的事情搞砸了。所以在你的情況下,應該是
@ElementCollection。
@Column(name = "value")
private List<Double> values。
uj5u.com熱心網友回復:
我自己找到了一個解決方案,我需要使用BigDecimal來代替Double,并使用BigDecimal作為TargetClass。現在一切都正常了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/309820.html
標籤:
