java - 如何在hibernate java中为给定的xml使用注释
Posted
技术标签:
【中文标题】java - 如何在hibernate java中为给定的xml使用注释【英文标题】:How use annotation for given xml in hibernate java 【发布时间】:2016-11-21 20:06:21 【问题描述】:我在 xml 中有以下代码,我如何在下面的代码中使用注释
<hibernate-mapping>
<class name="com.gf.DataDetail" table="DATADETAIL">
<id name="DataId" type="java.lang.Long">
<column name="DATA_ID" />
<generator class="identity" />
</id>
<property name="recordId" type="java.lang.Long">
<column name="RECORD_ID" />
</property>
<property name="recordName" type="java.lang.String">
<column name="RECORD_NAME"></column>
</property>
<set name="detail" table="DETAIL"
inverse="true" lazy="true" fetch="select">
<key>
<column name="DATA_ID" not-null="true" />
</key>
<one-to-many class="com.gf.detail" />
</set>
<set name="loadErrors" table="LOADERRORS"
inverse="true" lazy="true" fetch="select">
<key>
<column name="DATA_ID" not-null="true" />
</key>
<one-to-many class="com.gf.loadErrors" />
</set>
</class>
在java文件中我有
@Entity
@Table(name = "DATADETAIL")
@JsonIgnoreProperties(ignoreUnknown = true)
public class BatchMetaData
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "DATA_ID")
private Number DATA_ID;
@Column(name = "RECORD_ID")
private Number RECORD_ID;
@Column(name = "RECORD_NAME")
private String RECORD_NAME;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "DATADETAIL")
private Set<DETAIL> detail =
new HashSet<DETAIL>(0);
@OneToMany(fetch = FetchType.LAZY, mappedBy = "DATADETAIL")
private Set<LOADERRORS> loadErrors =
new HashSet<LOADERRORS>(0);
public Set<DETAIL> getDetail()
return detail;
public void setDetail(Set<DETAIL> detail)
this.detail = detail;
public Set<LOADERRORS> getLoadErrors()
return LoadErrors;
public void setLoadErrors(Set<LOADERRORS> LoadErrors)
this.LoadErrors = LoadErrors;
我只是在这里从 xml 文件转换为注释文件。我是否将 oneto 映射注释应用到错误的位置。对此有任何建议。
【问题讨论】:
你尝试了什么? “请给我代码”不是本网站的运作方式 @JimHawkins 请查看更新后的问题。 【参考方案1】:这应该可行:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "parent name")
mappedBy
应该是父对象名称。
【讨论】:
我应该使用 '@joincolumn' 作为 DATA_ID 列,因为它们在 xml 文件中使用键标记 详细表是您共享的 xml 中的关系所有者。所以 mappedBy 就足够了,因为它表明父对象不会控制关系 根据解释,我在 xml 中有多个带有 key 标签的表,如果是这样,我应该使用 joincolumn 注释。请检查我更新的查询,如果有错误,请更正。以上是关于java - 如何在hibernate java中为给定的xml使用注释的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何在Java Spring和Hibernate的单个事务中管理2个DAO方法?
如何使用 Java / Hibernate 在 SQL 中自动插入当前日期
java - 如何在java桌面应用程序中使用spring(事务)和hibernate创建嵌入式H2 DB?
java - 如何在hibernate java中为给定的xml使用注释