2017-08-17 63 views
1

如何正確使用映射推土機和註釋與註釋

沒有列出地圖推土機地圖列表,一切正常

推土機版本6.1.0

http://dozer.sourceforge.net/documentation/collectionandarraymapping.html 如何在使B-提示註釋

@Entity 
@Table(name = "PRODUCT_THEME") 
@Data 
public class ProductTheme implements Serializable { 
    @Id 
    @GeneratedValue(generator = "PRODUCT_THEME_SEQ", strategy = GenerationType.SEQUENCE) 
    @SequenceGenerator(name = "PRODUCT_THEME_SEQ", sequenceName = "PRODUCT_THEME_SEQ", allocationSize = 1) 
    @Column(name = "ID", updatable = false, nullable = false) 
    @Mapping("id") 
    private Integer id; 
    @Column(name = "DESCRIPTION", length = 100) 
    @Mapping("description") 
    private String description; 
    @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 
    @JoinTable(name = "PRODUCT_THEME_IMAGE", joinColumns = { @JoinColumn(name = "THEME_ID", nullable = false, updatable = false) }, inverseJoinColumns = { 
            @JoinColumn(name = "IMAGE_ID", nullable = false, updatable = false) }) 

    **@Mapping("imagesList")** 

    private List<Images> imagesList; 
    @Column(name = "ACTIVE", nullable = false) 
    @Mapping("active") 
    private Boolean active; 
... 
} 

一切工作正常,但是當我試圖讓地圖名單,我得到一個錯誤

如何在不配置xml的情況下解決此問題?

Caused by: java.lang.StackOverflowError 
    at java.util.AbstractCollection.toString(AbstractCollection.java:454) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.Images.toString(Images.java:15) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.ProductTheme.toString(ProductTheme.java:21) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.Images.toString(Images.java:15) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.ProductTheme.toString(ProductTheme.java:21) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.Images.toString(Images.java:15) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.ProductTheme.toString(ProductTheme.java:21) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.Images.toString(Images.java:15) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.ProductTheme.toString(ProductTheme.java:21) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.Images.toString(Images.java:15) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.ProductTheme.toString(ProductTheme.java:21) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) 
    at java.util.Vector.toString(Vector.java:1000) 
    at org.eclipse.persistence.indirection.IndirectList.toString(IndirectList.java:890) 
    at java.lang.String.valueOf(String.java:2994) 
    at java.lang.StringBuilder.append(StringBuilder.java:131) 
    at by.softclub.model.entity.Images.toString(Images.java:15) 

回答

0

爲了防止龍目島的ToString()運行遞歸鏈接字段應被排除在外。和hashCode()相同:

@Entity 
@Table(name = "PRODUCT_THEME") 
@Data 
@lombok.ToString(exclude="imagesList") 
@lombok.EqualsAndHashCode(exclude="imagesList") 
public class ProductTheme implements Serializable { 
    ... 
}