首先是xml文件配置的多对一: java
<many-to-one name="brand" column="brand" class="com.tch.model.Brand" /> app
brand是实体类中的属性,class对于类的全称 column对于外键 fetch
xml文件配置的一对多: spa
<set name="productstock" inverse="true" cascade="all" lazy="true" batch-size="30"> component
<key column name="product" /> //外键 xml
<one-to-many class="com.tch.model.stock.ProductStock" /> io
</set> class
多对多只须要将 one-to-many换成many-to-many便可 配置
单向一对一能够经过component配置: model
<component name="wmsExtend" class="com.tch.model.Pro">
<property name="pfDateFlag" type="java.lang.String" column="pfDateFlag" />
</component>
注解配置一对多:
@OneToMany(cascade = javax.persistence.CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "mallStore") //mallStore是多的一方里面保存的一的一方的属性。
@BatchSize(size=50)
注解配置多对一:
@ManyToOne(optional = false, fetch = FetchType.LAZY,cascade=....)
@JoinColumn(name = "foreign_key", nullable = false)
注解配置多对多:
@ManyToMany(mappedBy="",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinTable(name="",joinColumns={@JoinColumn(name="")},inverseJoinColumns={@JoinColumn(name="")})