Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate entitymanager不会将所有电话保留为联系人_Hibernate_Jpa_Javadb_Hibernate Entitymanager - Fatal编程技术网

Hibernate entitymanager不会将所有电话保留为联系人

Hibernate entitymanager不会将所有电话保留为联系人,hibernate,jpa,javadb,hibernate-entitymanager,Hibernate,Jpa,Javadb,Hibernate Entitymanager,我有以下实体。 联系方式。人。组织和Telefoon(英语电话) 个人和组织都是联系人。他们从接触中继承 联系人可以有一个或多个电话号码。这是Telefoon的列表 一个组织也有一个联系人 问题是如果我坚持个人对象和组织对象, 其中每个对象都有2个号码,对于某些对象,数据库中只有1个电话号码?怎么样 我知道这与我的注释和我的类配置有关 班级联系 @Entity @Table(name= "Contact") @Inheritance(strategy = InheritanceType.JOIN

我有以下实体。 联系方式。人。组织和Telefoon(英语电话)

个人和组织都是联系人。他们从接触中继承

联系人可以有一个或多个电话号码。这是Telefoon的列表

一个组织也有一个联系人

问题是如果我坚持个人对象和组织对象, 其中每个对象都有2个号码,对于某些对象,数据库中只有1个电话号码?怎么样

我知道这与我的注释和我的类配置有关

班级联系

@Entity
@Table(name= "Contact")
@Inheritance(strategy = InheritanceType.JOINED)
@XmlRootElement
public class Contact implements Serializable {
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private String naam;
    @Embedded
    private Adres adres;

    public Contact() {}

    @OneToMany(mappedBy="contact", orphanRemoval=true,cascade = CascadeType.ALL)
    @XmlElement
    private List<Telefoon> telefoons=new ArrayList<>();
Telefoon类(英语电话)

我以这种方式保存我的对象:

persoon1.addTelefoon(new Telefoon("Huis","092243851"));
persoon1.addTelefoon(new Telefoon("Mobiel","0478451226"));
persoon2.addTelefoon(new Telefoon("Huis","095547812"));
persoon2.addTelefoon(new Telefoon("Mobiel","0425154578"));
persoon3.addTelefoon(new Telefoon("Huis","097784152"));
persoon3.addTelefoon(new Telefoon("Mobiel","0478221144"));
persoon4.addTelefoon(new Telefoon("Huis","095862314"));
persoon4.addTelefoon(new Telefoon("Mobiel","0423887799"));
persoon5.addTelefoon(new Telefoon("Huis","097841526"));
persoon5.addTelefoon(new Telefoon("Mobiel","0478220033"));
contactpersoon1.addTelefoon(new Telefoon("Huis","092261236"));
contactpersoon1.addTelefoon(new Telefoon("Mobiel","0499150327"));
contactpersoon2.addTelefoon(new Telefoon("Huis","097842615"));
contactpersoon2.addTelefoon(new Telefoon("Mobiel","0499369101"));
contactpersoon3.addTelefoon(new Telefoon("Huis","091142563"));
contactpersoon3.addTelefoon(new Telefoon("Mobiel","0452119987"));
organisatie1.addTelefoon(new Telefoon("Huis","094578956"));
organisatie1.addTelefoon(new Telefoon("Mobiel","0488125200"));
organisatie2.addTelefoon(new Telefoon("Huis","091247653"));
organisatie2.addTelefoon(new Telefoon("Mobiel","0487930287"));
organisatie3.addTelefoon(new Telefoon("Huis","09784561346"));
organisatie3.addTelefoon(new Telefoon("Mobiel","0476112233"));
em.getTransaction().begin();
em.persist(persoon1);
em.persist(persoon2);
em.persist(persoon3);
em.persist(persoon4);
em.persist(persoon5);
em.persist(organisatie1);
em.persist(organisatie2);
em.persist(organisatie3);
em.merge(contactpersoon1);
em.merge(contactpersoon2);
em.merge(contactpersoon3);
em.getTransaction().commit();
但是数据库不会显示所有的家庭和手机号码! 有些被遗漏了

有什么想法吗

Thanx我找到了答案。 Glassfish在数据库中保存日期时遇到问题

类Person的date属性由我自己编写的类转换。只需编辑数据库中日期的标记

玻璃鱼似乎无法处理这个问题。 我还删除了带有组织(Organization)列表的oneToMany

这:

现在一切都好了!
Thanx

哪些成功持续,哪些不成功?
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Organisatie extends Contact implements Serializable{
    protected Organisatie() {}

    @JoinColumn(name = "persoonid")
    @ManyToOne(cascade=CascadeType.ALL)
    private Persoon contactPersoon;
@Entity
@Table(name = "Telefoon")
public class Telefoon implements Serializable {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private long id;


   @Column(name = "nummer")
   private String nummer;
   @Column(name = "naam")
   private String naam;

   @JoinColumn(name = "contactid")
   @ManyToOne
   private Contact contact;
persoon1.addTelefoon(new Telefoon("Huis","092243851"));
persoon1.addTelefoon(new Telefoon("Mobiel","0478451226"));
persoon2.addTelefoon(new Telefoon("Huis","095547812"));
persoon2.addTelefoon(new Telefoon("Mobiel","0425154578"));
persoon3.addTelefoon(new Telefoon("Huis","097784152"));
persoon3.addTelefoon(new Telefoon("Mobiel","0478221144"));
persoon4.addTelefoon(new Telefoon("Huis","095862314"));
persoon4.addTelefoon(new Telefoon("Mobiel","0423887799"));
persoon5.addTelefoon(new Telefoon("Huis","097841526"));
persoon5.addTelefoon(new Telefoon("Mobiel","0478220033"));
contactpersoon1.addTelefoon(new Telefoon("Huis","092261236"));
contactpersoon1.addTelefoon(new Telefoon("Mobiel","0499150327"));
contactpersoon2.addTelefoon(new Telefoon("Huis","097842615"));
contactpersoon2.addTelefoon(new Telefoon("Mobiel","0499369101"));
contactpersoon3.addTelefoon(new Telefoon("Huis","091142563"));
contactpersoon3.addTelefoon(new Telefoon("Mobiel","0452119987"));
organisatie1.addTelefoon(new Telefoon("Huis","094578956"));
organisatie1.addTelefoon(new Telefoon("Mobiel","0488125200"));
organisatie2.addTelefoon(new Telefoon("Huis","091247653"));
organisatie2.addTelefoon(new Telefoon("Mobiel","0487930287"));
organisatie3.addTelefoon(new Telefoon("Huis","09784561346"));
organisatie3.addTelefoon(new Telefoon("Mobiel","0476112233"));
em.getTransaction().begin();
em.persist(persoon1);
em.persist(persoon2);
em.persist(persoon3);
em.persist(persoon4);
em.persist(persoon5);
em.persist(organisatie1);
em.persist(organisatie2);
em.persist(organisatie3);
em.merge(contactpersoon1);
em.merge(contactpersoon2);
em.merge(contactpersoon3);
em.getTransaction().commit();
@Entity
@Table(name="Persoon")
@Inheritance(strategy= InheritanceType.JOINED)
public class Persoon extends Contact implements Serializable{
    @Convert(converter=LocalDatePersistenceConverter.class)
    private LocalDate geboorteDatum;

    protected Persoon() {}

@OneToMany(mappedBy="contactPersoon",orphanRemoval=true,cascade = CascadeType.ALL)    
      private List<Organisatie> Organisaties;
@Entity
@XmlRootElement
public class Persoon extends Contact implements Serializable {


    @Temporal(DATE)
    private Date geboorteDatum;

    public Persoon() {
    }
}