मैं जेपीए के साथ खुद को परिचित करने की कोशिश कर रहा हूं इसलिए मैंने एक बहुत ही सरल परियोजना बनाई। मेरे पास एक यूजर क्लास और एड्रेस क्लास है। ऐसा प्रतीत होता है कि मुझे अपने उपयोगकर्ता वर्ग में पता जोड़ने के बावजूद दोनों को जारी रखना है?यदि उपयोगकर्ता में पता निहित है तो मुझे दोनों ऑब्जेक्ट्स को क्यों जारी रखना होगा?
उपयोगकर्ता:
import javax.persistence.*;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Entity
@Table(name = "usr") // @Table is optional, but "user" is a keyword in many SQL variants
@NamedQuery(name = "User.findByName", query = "select u from User u where u.name = :name")
public class User {
@Id // @Id indicates that this it a unique primary key
@GeneratedValue // @GeneratedValue indicates that value is automatically generated by the server
private Long id;
@Column(length = 32, unique = true)
// the optional @Column allows us makes sure that the name is limited to a suitable size and is unique
private String name;
// note that no setter for ID is provided, Hibernate will generate the ID for us
@OneToMany(fetch=FetchType.LAZY, mappedBy="user")
private List<Address> addresses;
पता:
@Entity
public class Address {
@Id // @Id indicates that this it a unique primary key
@GeneratedValue // @GeneratedValue indicates that value is automatically generated by the server
private Long id;
@Column(length=50)
private String address1;
@ManyToOne
@JoinColumn(name="user_id")
private User user;
EntityManager:
EntityManager entityManager = Persistence.createEntityManagerFactory("tutorialPU").createEntityManager();
entityManager.getTransaction().begin();
User user = new User();
user.setName("User");
List<Address> addresses = new ArrayList<Address>();
Address address = new Address();
address.setAddress1("Address1");
addresses.add(address);
user.setAddresses(addresses);
entityManager.persist(user);
entityManager.persist(address);
entityManager.getTransaction().commit();
entityManager.close();
शायद कुछ गलत कर ... बस यकीन नहीं यह क्या है?
किसी भी सुझाव की सराहना की जाएगी।
धन्यवाद,
एस
http://docs.oracle.com/javaee/6/api/javax/persistence/OneToMany.html#cascade()। डिफ़ॉल्ट रूप से यह कैस्केड नहीं होता है, साथ ही यह भी वैकल्पिक है। –