Java 冬眠+;推土机-在映射的集合项属性上使用映射id
我有两个hibernate实体:Java 冬眠+;推土机-在映射的集合项属性上使用映射id,java,hibernate,dozer,Java,Hibernate,Dozer,我有两个hibernate实体: @Entity @Table(name = DBConstants.TABLE_PARTNER) public class Partner extends XWeedEntity { private static final long serialVersionUID = 5692151244956513381L; @Id @Column(name = DBConstants.PARTNER_COL_PARTNER_NUMBER)
@Entity
@Table(name = DBConstants.TABLE_PARTNER)
public class Partner extends XWeedEntity {
private static final long serialVersionUID = 5692151244956513381L;
@Id
@Column(name = DBConstants.PARTNER_COL_PARTNER_NUMBER)
private Integer partnerNumber;
@OneToMany(mappedBy = DBConstants.VISIT_PROP_VISITOR)
private List<Visit> visits;
// More fields and properties...
}
@Entity
@Table(name = DBConstants.TABLE_VISIT)
public class Visit extends XWeedEntity {
private static final long serialVersionUID = -8324746049334117579L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = DBConstants.VISIT_COL_ID)
private Integer id;
@ManyToOne
@JoinColumn(name = DBConstants.VISIT_COL_VISITOR, nullable = false)
private Partner visitor;
// More fields and properties...
}
public class PartnerDto extends XWeedEntity {
private static final long serialVersionUID = 5692151244956513381L;
private Integer partnerNumber;
private List<VisitDto> visits;
// More fields and properties...
}
public class VisitDto extends XWeedEntity {
private static final long serialVersionUID = -8324746049334117579L;
private Integer id;
private PartnerDto visitor;
// More fields and properties...
}
@实体
@表(name=DBConstants.Table\u PARTNER)
公共类合作伙伴扩展XweeEntity{
私有静态最终长serialVersionUID=5692151244956513381L;
@身份证
@列(名称=DBConstants.PARTNER\u COL\u PARTNER\u编号)
私有整数;
@OneToMany(mappedBy=DBConstants.VISIT\u PROP\u VISITOR)
私人名单访问;
//更多字段和属性。。。
}
@实体
@表(name=DBConstants.Table\u访问)
公开课堂参观延长了学生的学习时间{
私有静态最终长serialVersionUID=-832474604933417579L;
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(名称=DBConstants.VISIT\u COL\u ID)
私有整数id;
@许多酮
@JoinColumn(name=DBConstants.VISIT\u COL\u VISITOR,null=false)
私人伙伴访客;
//更多字段和属性。。。
}
和两个DTO实体:
@Entity
@Table(name = DBConstants.TABLE_PARTNER)
public class Partner extends XWeedEntity {
private static final long serialVersionUID = 5692151244956513381L;
@Id
@Column(name = DBConstants.PARTNER_COL_PARTNER_NUMBER)
private Integer partnerNumber;
@OneToMany(mappedBy = DBConstants.VISIT_PROP_VISITOR)
private List<Visit> visits;
// More fields and properties...
}
@Entity
@Table(name = DBConstants.TABLE_VISIT)
public class Visit extends XWeedEntity {
private static final long serialVersionUID = -8324746049334117579L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = DBConstants.VISIT_COL_ID)
private Integer id;
@ManyToOne
@JoinColumn(name = DBConstants.VISIT_COL_VISITOR, nullable = false)
private Partner visitor;
// More fields and properties...
}
public class PartnerDto extends XWeedEntity {
private static final long serialVersionUID = 5692151244956513381L;
private Integer partnerNumber;
private List<VisitDto> visits;
// More fields and properties...
}
public class VisitDto extends XWeedEntity {
private static final long serialVersionUID = -8324746049334117579L;
private Integer id;
private PartnerDto visitor;
// More fields and properties...
}
public class PartnerDto扩展XWeedEntity{
私有静态最终长serialVersionUID=5692151244956513381L;
私有整数;
私人名单访问;
//更多字段和属性。。。
}
公共类访问扩展了XWeedEntity{
私有静态最终长serialVersionUID=-832474604933417579L;
私有整数id;
访客私人伙伴;
//更多字段和属性。。。
}
我得到了以下推土机映射:
<mapping map-id="partnerWithCollections" map-empty-string="false" map-null="false">
<class-a>org.xweed.model.app.domain.dbo.Partner</class-a>
<class-b>org.xweed.model.app.domain.dto.PartnerDto</class-b>
<field map-id="visitWithPartner">
<a>visits</a>
<b>visits</b>
</field>
</mapping>
<mapping map-id="partnerBasic" wildcard="false" map-empty-string="false" map-null="false">
<class-a>org.xweed.model.app.domain.dbo.Partner</class-a>
<class-b>org.xweed.model.app.domain.dto.PartnerDto</class-b>
<field>
<a>partnerNumber</a>
<b>partnerNumber</b>
</field>
</mapping>
<mapping map-id="visitWithPartner" map-empty-string="false" map-null="false">
<class-a>org.xweed.model.app.domain.dbo.Visit</class-a>
<class-b>org.xweed.model.app.domain.dto.VisitDto</class-b>
<field map-id="partnerBasic">
<a>visitor</a>
<b>visitor</b>
</field>
</mapping>
org.xweed.model.app.domain.dbo.Partner
org.xweed.model.app.domain.dto.PartnerDto
拜访
拜访
org.xweed.model.app.domain.dbo.Partner
org.xweed.model.app.domain.dto.PartnerDto
合伙人编号
合伙人编号
org.xweed.model.app.domain.dbo.Visit
org.xweed.model.app.domain.dto.VisitDto
游客
游客
问题是,当我使用“partnerWithCollections”映射调用dozer时,dozer正在映射来自合作伙伴访问的所有访问对象,但每次访问都有它的访问者和它的访问集合,以此类推,每次访问的访问者属性应该只包含partnerNumber
若我试图从访问中排除visitor字段,那个么它会起作用,并且每个访问者的访问都是空的,但由于某种原因,使用map id来使用一些具体的合作伙伴映射是不起作用的
有什么想法吗
提前感谢。这是因为默认情况下,推土机始终使用相同的名称映射属性:
- 合作伙伴访问
- 伙伴访问
<configuration>
<wildcard>false</wildcard>
</configuration>
假的