组建映照(User-Name)
接洽干系的属性是个复杂范例的经境霪类,但没有是真体的即:数据库中出有表与该属性对应,但背绵的属性要经暂保存的。
<componentname=”name” class=”com.test.hibernate.domain.Name”>
<property name=”initial”/>
<property name=”first”/>
<property name=”last”/>
</component>
当组建的属性没有能战表中的字段简朴对应的时间可以或许选择真现:
org.hibernate.usertype.UserType或
org.hibernate.usertype.CompositeUserType
例:
User类
privateInteger id;
privateName name;
privateString birth;
getter()战setter()…
Name类(必没有成少的属性,单天死一个表太华侈,所以把Name里的字段皆减到User表中)
privateString firstName;
privateString lastName;
getter()战setter()…
User.hbm.xml
<classname="User" table="user">
<id name="id"column="id" unsaved-value="-1">
<generatorclass="native"/>
</id>
<component name="name">
<property name="firstName"column="first_name"/>
<property name="lastName"column="last_name"/>
</component>
<property name="birth"column="birth"/>
</class>
纠散映照(sethttp://www.qq-mail-server.cn/,list,array,bag,map)
<setname=”employees”>
<keycolumn=”depart_id”/>
<one-to-many class=”Employee”/>
<!--<element type=”string” column=”name”/>-->
<!—
<composite-element class=”YourClass”>
<property name=”prop1”/>
<property name=”prop2”/>
</composite>
-->
</set>
例:
<listname=”employees”>
<key column=”depart_id”/>
<!—表中颖ヂ坐抵章符型列中暗示list-index-->
<list-index column=”order_column”/>
<one-to-many class=”Employee”/>
</list>
<arrayname=”employees”>
<key column=””depart_id/>
<!—表中颖ヂ坐抵章符型琳�凳�list-index—>
<list-index column=”order_column”/>
<one-to-many class=”Employee”/>
</array>
<bagname=”employees” order-by=”id desc”>
<key column=”depart_id”/>
<one-to-many class=”Employee”/>
</bag>
<mapname=”employees”>
<key column=”depart_id”/>
<map_key type=”string” column=”name”/>
<one-to-many class=”Employee”/>
</map>
那些纠散类皆是Hibernate真现的类战JAVA中的纠散类没有完备一样,set,list,map告别战JAVA中的Set,List,Map接心对应,bag映
射成JAVA的List;那些纠散的操做战JAVA纠散开对应的接心根底分歧;正在JAVA的真体类中纠散只能界讲成接心没有能界讲成具体类,因为调集会会议正在匝弄时被交流成Hibernate的真现。
纠散的简朴开用本则R↓夜部门环境下用set,需供包管纠散开的按序用list,念用java.util.List又没有需供包管按序用bag。更多问题来自提问网!