在transaction.com发布后,JPA代码不再执行

时间:2016-07-27 06:49:41

标签: java jpa entitymanager

主要方法

    EntityManagerFactory emf=Persistence.createEntityManagerFactory("manager1");
    EntityManager em1=emf.createEntityManager();
    EntityTransaction entityTransaction=em1.getTransaction();
    entityTransaction.begin();

    Person persons=JPA_basic_Example.setPerson();//fills all the fields of person
    Credential cred=JPA_basic_Example.setCredential();//fills all fields of credentials

    System.out.println("check1");
    cred.setPerson(persons);
    persons.setCredential(cred);
    em1.persist(cred);
    entityTransaction.commit();
    em1.close();
    emf.close();

Java Bean Credential oneToone双向与人

public class Credential {
    @Id
    @Column(name ="credentialid")
    private int credential_id;
    private  String UserName;

    private String Password;


    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name="Personid")
    private Person person;

    public String getPassword() {
        return Password;
    }

    public void setPassword(String password) {
        Password = password;
    }

    public int getCredential_id() {
        return credential_id;
    }

    public void setCredential_id(int credential_id) {
        this.credential_id = credential_id;
    }

    public String getUserName() {
        return UserName;
    }

    public void setUserName(String userName) {
        UserName = userName;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }
}

Java Bean Person

@Entity
public class Person {
    @Id
    @Column(name ="Personid")
    private int person_id;

    //@Basic(optional = false)
    //@Column(name ="Name", unique = true)
    private  String name;

    @ElementCollection
    @CollectionTable
    List<String> contact=new ArrayList<String>();

    private Address address=new Address();

    @OneToOne(mappedBy = "person",  orphanRemoval = true )
    Credential credential ;


    public Credential getCredential() {
        return credential;
    }

    public void setCredential(Credential credential) {
        this.credential = credential;
    }


    public List<String> getContact() {
        return contact;
    }

    public void setContact(List<String> contact) {
        this.contact = contact;
    }


    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPerson_id() {
        return person_id;
    }




    public void setPerson_id(int person_id) {
        this.person_id = person_id;
    }
}

输出控制台

休眠:     插入     成         人         (区域,城市,密码,州,名称,Personid)     值         (?,?,?,?,?,?) 此代码卡住后,向前移动并显示任何异常或错误

0 个答案:

没有答案