Java 从另一个ejb获取字段值
我想在另一个ejb中获得field的值 下面是我的示例,我想从类(Visite)中获取“CLient”的值,并在类(DateVisite)的“ClientVisite”中获取该值,然后将该值保存在数据库中 这是我的密码Java 从另一个ejb获取字段值,java,jpa,ejb,entitymanager,Java,Jpa,Ejb,Entitymanager,我想在另一个ejb中获得field的值 下面是我的示例,我想从类(Visite)中获取“CLient”的值,并在类(DateVisite)的“ClientVisite”中获取该值,然后将该值保存在数据库中 这是我的密码 package model.entitie; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Colu
package model.entitie;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.ColumnResult;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import model.entitie.Visite;
@Entity
@NamedQueries({ @NamedQuery(name = "Datevisite.findAll", query = "select o from Datevisite o") })
@SequenceGenerator(name = "DateVisite_Id_Seq_Gen", sequenceName = "DATEVISITE_SEQ", allocationSize = 1,
initialValue = 50)
public class Datevisite implements Serializable {
private static final long serialVersionUID = -341535626783197699L;
@Id
@Column(nullable = false, length = 4000)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "DateVisite_Id_Seq_Gen")
private String iddatevis;
@Temporal(TemporalType.DATE)
private Date jourvisite;
@ManyToOne
@JoinColumn(name = "VISITE_ID")
private Visite datevisite;
@Temporal(TemporalType.DATE)
@Column(name = "JOURVISITEEND")
private Date jourvisteend;
@Column(name = "DESCRPTION")
private String description;
@Column(name = "CLIENTVISITE")
private String ClientVisite;
public void setClientVisite(String ClientVisite) {
this.ClientVisite = ClientVisite;
}
public String getClientVisite() {
return ClientVisite;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
public void setJourvisteend(Date jourvisteend) {
this.jourvisteend = this.jourvisite;
}
public Date getJourvisteend() {
return jourvisteend;
}
public Datevisite() {
}
public Datevisite(String iddatevis, Date jourvisite, Visite datevisite, String ClientVisite) {
this.iddatevis = iddatevis;
this.jourvisite = jourvisite;
this.datevisite = datevisite;
this.ClientVisite = ClientVisite;
}
public String getIddatevis() {
return iddatevis;
}
public void setIddatevis(String iddatevis) {
this.iddatevis = iddatevis;
}
public Date getJourvisite() {
return jourvisite;
}
public void setJourvisite(Date jourvisite) {
this.jourvisite = jourvisite;
}
public Visite getDatevisite() {
return datevisite;
}
public void setDatevisite(Visite datevisite) {
this.datevisite = datevisite;
}
}
探视班
package model.entitie;
import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
@Entity
@NamedQueries({ @NamedQuery(name = "Visite.findAll", query = "select o from Visite o") })
@SequenceGenerator(name = "Visite_Id_Seq_Gen", sequenceName = "VISITE_SEQ", allocationSize = 1, initialValue = 50)
public class Visite implements Serializable {
private static final long serialVersionUID = 2402539910369717472L;
@Column(length = 4000)
public String client;
@Column(length = 4000)
private String dep;
@Id
@Column(nullable = false, length = 4000)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "Visite_Id_Seq_Gen")
private String idvisite;
@Column(length = 4000)
private String nbvisites;
@OneToMany(mappedBy = "datevisite", cascade = { CascadeType.PERSIST, CascadeType.MERGE })
private List<Datevisite> datevisiteList;
public Visite() {
}
public Visite(String client, String dep, String idvisite, String nbvisites) {
this.client = client;
this.dep = dep;
this.idvisite = idvisite;
this.nbvisites = nbvisites;
}
public String getClient() {
return client;
}
public void setClient(String client) {
this.client = client;
}
public String getDep() {
return dep;
}
public void setDep(String dep) {
this.dep = dep;
}
public String getIdvisite() {
return idvisite;
}
public void setIdvisite(String idvisite) {
this.idvisite = idvisite;
}
public String getNbvisites() {
return nbvisites;
}
public void setNbvisites(String nbvisites) {
this.nbvisites = nbvisites;
}
public List<Datevisite> getDatevisiteList() {
return datevisiteList;
}
public void setDatevisiteList(List<Datevisite> datevisiteList) {
this.datevisiteList = datevisiteList;
}
public Datevisite addDatevisite(Datevisite datevisite) {
getDatevisiteList().add(datevisite);
datevisite.setDatevisite(this);
return datevisite;
}
public Datevisite removeDatevisite(Datevisite datevisite) {
getDatevisiteList().remove(datevisite);
datevisite.setDatevisite(null);
return datevisite;
}
}
如果我理解正确,您需要从Visite类(Visite.getClient())获取客户端字段,并在DateVisite类(DateVisite.setClientVisite())的clientVisite字段中设置它,对吗 DateVisite类已具有成员visite,下面的代码应适用于您:
datevisite.setClientVisite(datevisite.getDateVisite().getClient());
你是说另一个“实体”而不是“EJB”对吗?EJB是服务/会话bean。我只是想澄清一下。除此之外,你还尝试了什么?你的问题在哪里?是的,我是说我尝试了public void setClientVisite(String ClientVisite,Visite-Visite){this.ClientVisite=Visite.getClient();}但什么都没有发生除了你有两个参数但只使用一个之外,如果实体被附加,它应该可以工作。设置硬编码字符串时是否有效?必须是同一个地方,否则它可以在一个地方附着,在另一个地方分离。这只是一个字符串,为什么附着和分离的对象在这里有效果@user3419507 t'Arriquer en français,ce sera plus simple?从您的问题来看,不清楚您在做什么以及哪里出了问题。在
em.persist(datevisite)
前面放置断点时,datevisite.ClientVisite是否设置为所需值?如果不是,您的代码中就有问题,而不是JPA中的问题。
datevisite.setClientVisite(datevisite.getDateVisite().getClient());