Hibernate set type ing and hibernate set ing

Source: Internet
Author: User

Hibernate set type ing and hibernate set ing

Unordered Set elements cannot be repeated.

List ordered elements can be repeated.

Unordered Bag elements can be repeated.

Map key-value pairs

Student:

Package model;

Import java. util. Set;

Public class Student {
Private long id;
Private String name;
Private Set <String> images;
Public long getId (){
Return id;
}
Public void setId (long id ){
This. id = id;
}
Public String getName (){
Return name;
}
Public void setName (String name ){
This. name = name;
}
Public Set <String> getImages (){
Return images;
}
Public void setImages (Set <String> images ){
This. images = images;
}


}

<? Xml version = "1.0"?>
<! DOCTYPE hibernate-mapping PUBLIC
"-// Hibernate/Hibernate Mapping DTD 3.0 // EN"
Http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd>

<Hibernate-mapping package = "model">

<Class name = "Student" table = "t_student">
<Id name = "id" column = "stuId">
<Generator class = "native"> </generator>
</Id>

<Property name = "name" column = "stuName"> </property>

<Set name = "images" table = "t_image">
<Key column = "studentId"> </key>
<Element column = "imageName" type = "string"> </element>
</Set>
</Class>

</Hibernate-mapping>

Student2:

Package model;

Import java. util. List;



Public class Student2 {
Private long id;
Private String name;
Private List <String> images;
Public long getId (){
Return id;
}
Public void setId (long id ){
This. id = id;
}
Public String getName (){
Return name;
}
Public void setName (String name ){
This. name = name;
}
Public List <String> getImages (){
Return images;
}
Public void setImages (List <String> images ){
This. images = images;
}



}

<? Xml version = "1.0"?>
<! DOCTYPE hibernate-mapping PUBLIC
"-// Hibernate/Hibernate Mapping DTD 3.0 // EN"
Http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd>

<Hibernate-mapping package = "model">

<Class name = "Student2" table = "t_student">
<Id name = "id" column = "stuId">
<Generator class = "native"> </generator>
</Id>

<Property name = "name" column = "stuName"> </property>

<List name = "images" table = "t_image2">
<Key column = "studentId"> </key>
<List-index column = "imageIndex"> </list-index>
<Element column = "imageName" type = "string"> </element>
</List>
</Class>

</Hibernate-mapping>

Student3:

Package model;

Import java. util. List;



Public class Student3 {
Private long id;
Private String name;
Private List <String> images;
Public long getId (){
Return id;
}
Public void setId (long id ){
This. id = id;
}
Public String getName (){
Return name;
}
Public void setName (String name ){
This. name = name;
}
Public List <String> getImages (){
Return images;
}
Public void setImages (List <String> images ){
This. images = images;
}



}

 

<? Xml version = "1.0"?>
<! DOCTYPE hibernate-mapping PUBLIC
"-// Hibernate/Hibernate Mapping DTD 3.0 // EN"
Http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd>

<Hibernate-mapping package = "model">

<Class name = "Student3" table = "t_student">
<Id name = "id" column = "stuId">
<Generator class = "native"> </generator>
</Id>

<Property name = "name" column = "stuName"> </property>

<Idbag name = "images" table = "t_image3">
<Collection-id type = "long" column = "imageId">
<Generator class = "increment"> </generator>
</Collection-id>
<Key column = "studentId"> </key>
<Element column = "imageName" type = "string"> </element>
</Idbag>
</Class>

</Hibernate-mapping>

Student4:

Package model;

Import java. util. Map;

Public class Student4 {
Private long id;
Private String name;
Private Map <String, String> images;
Public long getId (){
Return id;
}
Public void setId (long id ){
This. id = id;
}
Public String getName (){
Return name;
}
Public void setName (String name ){
This. name = name;
}
Public Map <String, String> getImages (){
Return images;
}
Public void setImages (Map <String, String> images ){
This. images = images;
}


}

<? Xml version = "1.0"?>
<! DOCTYPE hibernate-mapping PUBLIC
"-// Hibernate/Hibernate Mapping DTD 3.0 // EN"
Http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd>

<Hibernate-mapping package = "model">

<Class name = "Student4" table = "t_student">
<Id name = "id" column = "stuId">
<Generator class = "native"> </generator>
</Id>

<Property name = "name" column = "stuName"> </property>

<Map name = "images" table = "t_image4">
<Key column = "studentId"> </key>
<Map-key type = "string" column = "imageKey"> </map-key>
<Element column = "imageName" type = "string"> </element>
</Map>
</Class>

</Hibernate-mapping>

StudentTest:

Package service;




Import java. util. ArrayList;
Import java. util. HashMap;
Import java. util. HashSet;
Import java. util. Iterator;
Import java. util. List;
Import java. util. Map;
Import java. util. Set;

Import org. hibernate. Session;
Import org. hibernate. SessionFactory;
Import org. junit. After;
Import org. junit. Before;
Import org. junit. Test;

Import util. HibernateUtil;
Import model. Student;
Import model. Student2;
Import model. Student3;
Import model. Student4;

Public class StudentTest {

SessionFactory sessionfactory = HibernateUtil. getSessionFactory (); // get the Session Factory
Private Session session;

@ Before
Public void setUp () throws Exception {
Session = sessionfactory. openSession (); // generate a new session
Session. beginTransaction (); // start the transaction
}

@ After
Public void tearDown () throws Exception {
Session. getTransaction (). commit (); // submit the transaction
Session. close (); // close the session
}

@ Test
Public void testSetSave (){
Set <String> imageSet = new HashSet <String> ();
ImageSet. add ("image1.png ");
ImageSet. add ("image2.png ");
ImageSet. add ("image3.png ");
ImageSet. add ("image4.png ");
Student s1 = new Student ();
S1.setImages (imageSet );
Session. save (s1 );
}

@ Test
Public void testSetFetch (){
Student student = (Student) session. get (Student. class, Long. valueOf (1 ));
Iterator it = student. getImages (). iterator ();
While (it. hasNext ()){
System. out. println (it. next ());
}
}

@ Test
Public void testListSave (){
List <String> imageList = new ArrayList <String> ();
ImageList. add ("image1.png ");
ImageList. add ("image2.png ");
ImageList. add ("image3.png ");
ImageList. add ("image4.png ");

Student2 s2 = new Student2 ();
S2.setImages (imageList );
Session. save (s2 );
}

@ Test
Public void testListFetch (){
Student2 student2 = (Student2) session. get (Student2.class, Long. valueOf (2 ));
Iterator it = student2.getImages (). iterator ();
While (it. hasNext ()){
System. out. println (it. next ());
}
}

@ Test
Public void testBagSave (){
List <String> imageList = new ArrayList <String> ();
ImageList. add ("image1.png ");
ImageList. add ("image2.png ");
ImageList. add ("image3.png ");
ImageList. add ("image4.png ");

Student3 s3 = new Student3 ();
S3.setImages (imageList );
Session. save (s3 );
}

@ Test
Public void testBagFetch (){
Student3 student3 = (Student3) session. get (Student3.class, Long. valueOf (3 ));
Iterator it = student3.getImages (). iterator ();
While (it. hasNext ()){
System. out. println (it. next ());
}
}

@ Test
Public void testMapSave (){
Map <String, String> imageMap = new HashMap <String, String> ();
ImageMap. put ("i1", "image1.png ");
ImageMap. put ("i2", "image2.png ");
ImageMap. put ("i3", "image3.png ");
ImageMap. put ("i4", "image4.png ");

Student4 s4 = new Student4 ();
S4.setImages (imageMap );
Session. save (s4 );
}

@ Test
Public void testMapFetch (){
Student4 student4 = (Student4) session. get (Student4.class, Long. valueOf (4 ));
Map <String, String> imageMap = student4.getImages ();
Set keys = imageMap. keySet ();
Iterator it = keys. iterator ();
While (it. hasNext ()){
String key = (String) it. next ();
System. out. println (key + ":" + imageMap. get (key ));
}
}
}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.