こんにちは私は@Embeddedアノテーションを使用しようとしていますが、現在私はDB内の@Embeddableオブジェクトからヌルを取得しています。次のように@EmbeddedでDB内のHibernate nullを返します
コードは次のとおりです。
@Entity
public class Employee {
@Id
@GeneratedValue
private int id;
private String firstName;
private String lastName;
private double salary;
@Embedded
private Adress adress;
public Adress getAdress() {
return adress;
}
public void setAdress(Adress adress) {
this.adress = adress;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
だから、ホールド私のEmployeeクラスで、Adress.class から@Embeddedフィールドがここに住所クラスが来る:
@Embeddable
public class Adress {
private String locality;
private String streetNumber;
private String zipCode;
public String getLocality() {
return locality;
}
public void setLocality(String locality) {
this.locality = locality;
}
public String getStreetNumber() {
return streetNumber;
}
public void setStreetNumber(String streetNumber) {
this.streetNumber = streetNumber;
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}
}
と私のメインのthatsクラス:
public class Main {
public static void main(String[] args) {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
EntityManager entityManager = entityManagerFactory.createEntityManager();
Employee employee = new Employee();
Adress adress = new Adress();
adress.setLocality("New York");
adress.setZipCode("55-5555");
adress.setStreetNumber("55");
employee.setFirstName("Andy");
employee.setLastName("Cole");
employee.setSalary(3333);
entityManager.getTransaction().begin();
entityManager.persist(employee);
entityManager.getTransaction().commit();
entityManager.close();
entityManagerFactory.close();
}
}
従業員クラスに関連するフィールドは、データベースに移動します問題はありませんが、クラスAdressに関連するフィールドはnullに設定されます。私はそれらをsetValuesとして持っていたいと思います。事前にすべてに感謝します。
感謝!、私は種類のそれのように考えますが、注釈がすべてを扱うことを考えられていたsetAddressコールを逃しています。 – filemonczyk
試してみましたか? – VinhNT
さようなら、それはあなたのヒントによって完了し、働いています – filemonczyk