Java JPA实体持久化方法不';t在数据库中创建新表记录
我在Wildfly 19上使用JTA JPA,persist方法不会在MySQL数据库中创建记录。我已经检查并再次检查了数据源和Wildfly/MySQL数据库连接。我在运行查询时也遇到了问题,因为我从MySQL中得到了一个“Database not selected”错误,最后通过使用“use”sql命令添加一个本机查询来修复该错误。当我执行持久化操作时,没有错误,但实体不会被保存。代码如下所述。任何帮助都将不胜感激 Persistence.xmlJava JPA实体持久化方法不';t在数据库中创建新表记录,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,我在Wildfly 19上使用JTA JPA,persist方法不会在MySQL数据库中创建记录。我已经检查并再次检查了数据源和Wildfly/MySQL数据库连接。我在运行查询时也遇到了问题,因为我从MySQL中得到了一个“Database not selected”错误,最后通过使用“use”sql命令添加一个本机查询来修复该错误。当我执行持久化操作时,没有错误,但实体不会被保存。代码如下所述。任何帮助都将不胜感激 Persistence.xml <?xml version="
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="miscPU">
<jta-data-source>java:/jdbc/misc</jta-data-source>
<properties>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.transaction.flush_before_completion" value="true"/>
</properties>
</persistence-unit>
<persistence-unit name="autojobsPU">
<jta-data-source>java:/jdbc/autojobs</jta-data-source>
<properties>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.transaction.flush_before_completion" value="true"/>
</properties>
</persistence-unit>
</persistence>
ClientZompanyDAO(数据访问方法):
等一下。我想我发现了问题所在。
package com.lingosys.jpa;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* @author mphoenix
*/
@Entity
@Table(name="clientcompany")
public class ClientCompanyEntity implements Serializable {
@Id
private int id;
@Column
private String name;
@Column
private String guid;
@Column
private String docTransPricingScheme;
@Column
private int paymentTerms;
@Column
private String dtBucket;
@Column
private String commissionType;
@Column
private boolean addPMSurchargeforDocTrans;
@Column
private boolean usLinguistsRequired;
@Column
private boolean passTradosLeveraging;
@Column
private boolean checkKnowledgeMgt;
@Column
private boolean prospect;
@Column
private String llsClientID;
@Column
private String billingInstructions;
@Column
private String billingEmail;
@Column
private String legalEntity;
@Column
private String legalEntityCompany;
@Column
private String specialInstructions;
@Column
private String clientPONumber;
public int getId() {
return id;
}
public void setId(int id) { this.id = id; }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGuid() {
return guid;
}
public void setGuid(String guid) {
this.guid = guid;
}
public boolean isPassTradosLeveraging() {
return passTradosLeveraging;
}
public void setPassTradosLeveraging(boolean passTradosLeveraging) {
this.passTradosLeveraging = passTradosLeveraging;
}
public boolean isUsLinguistsRequired() {
return usLinguistsRequired;
}
public void setUsLinguistsRequired(boolean usLinguistsRequired) {
this.usLinguistsRequired = usLinguistsRequired;
}
public boolean isAddPMSurchargeforDocTrans() {
return addPMSurchargeforDocTrans;
}
public void setAddPMSurchargeforDocTrans(boolean addPMSurchargeforDocTrans) {
this.addPMSurchargeforDocTrans = addPMSurchargeforDocTrans;
}
public String getDocTransPricingScheme() {
return docTransPricingScheme == null ? "LLS Pricing" : docTransPricingScheme;
}
public void setDocTransPricingScheme(String docTransPricingScheme) {
this.docTransPricingScheme = docTransPricingScheme;
}
public int getPaymentTerms() {
return paymentTerms;
}
public void setPaymentTerms(int paymentTerms) {
this.paymentTerms = paymentTerms;
}
public String getDtBucket() {
return dtBucket;
}
public void setDtBucket(String dtBucket) {
this.dtBucket = dtBucket;
}
public String getSpecialInstructions() {
return specialInstructions;
}
public void setSpecialInstructions(String specialInstructions) {
this.specialInstructions = specialInstructions;
}
public String getLegalEntityCompany() {
return legalEntityCompany;
}
public void setLegalEntityCompany(String legalEntityCompany) {
this.legalEntityCompany = legalEntityCompany;
}
public String getClientPONumber() {
return clientPONumber;
}
public void setClientPONumber(String clientPONumber) {
this.clientPONumber = clientPONumber;
}
public String getLlsClientID() {
return llsClientID;
}
public void setLlsClientID(String llsClientID) {
this.llsClientID = llsClientID;
}
public String getBillingInstructions() {
return billingInstructions;
}
public void setBillingInstructions(String billingInstructions) {
this.billingInstructions = billingInstructions;
}
public String getBillingEmail() {
return billingEmail;
}
public void setBillingEmail(String billingEmail) {
this.billingEmail = billingEmail;
}
public String getLegalEntity() {
return legalEntity;
}
public void setLegalEntity(String legalEntity) {
this.legalEntity = legalEntity;
}
public boolean getProspect() {
return prospect;
}
public void setProspect(boolean prospect) {
this.prospect = prospect;
}
public String getCommissionType() {
return commissionType;
}
public void setCommissionType(String commissionType) {
this.commissionType = commissionType;
}
public boolean isCheckKnowledgeMgt() {
return checkKnowledgeMgt;
}
public void setCheckKnowledgeMgt(boolean checkKnowledgeMgt) {
this.checkKnowledgeMgt = checkKnowledgeMgt;
}
}
package com.lingosys.jpa;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.io.Serializable;
import java.util.List;
/**
*
* @author mphoenix
*/
@Stateless
public class ClientCompanyDAO implements Serializable {
@PersistenceContext(unitName="miscPU")
private EntityManager em;
public ClientCompanyDAO() {
}
public void create(ClientCompanyEntity clientCompany) {
em.persist(clientCompany);
}
public ClientCompanyEntity findClientCompany(int id) {
ClientCompanyEntity clientCompany;
clientCompany = em.find(ClientCompanyEntity.class, id);
return clientCompany;
}
public List<ClientCompanyEntity> findAllClientCompanies() {
Query query = em.createNativeQuery("use misc;");
query.executeUpdate();
Query query2 = em.createQuery("select c from ClientCompanyEntity c");
return query2.getResultList();
}
public void delete(ClientCompanyEntity clientCompany) {
em.remove(em.contains(clientCompany) ? clientCompany:em.merge(clientCompany));
}
public int deleteAllClientCompanies() {
Query query = em.createQuery("delete from ClientCompanyEntity ");
return query.executeUpdate();
}
}
@Inject
private ClientCompanyDAO daoClientCompany;
private boolean noValidEmail = false;
private String fakeEmailUserName = "";
private Connection conn;
private List<ClientCompanyEntity> unsortedList;
private String specialInstructions;
private String createdBy;
//XML processing variables
private Document document = null;
private String xmlMsgs = "";
private boolean xmlLoaderDisabled = false;
//prospect handling variables
private boolean prospectDisabled = false;
//Legal entity based variables
boolean entitySet = false;
boolean lls = false;
boolean clientIDSet = false;
boolean billingInstructionsSet = false;
boolean billingEmailSet = false;
private static final String[] IS_LLS = {"LLS", "Coto/TI", "LLS-UK"};
boolean companyLoggedOn = false;
private boolean processDisabled = true;
private boolean userSpecificEntity = false;
/**
* Constructor initializes Web Service client, Hibernate DAOs, UI lists, and
* client view.
*
*/
public ClientCreatorBean() {
fmrws = new FormerWSOps();
}
@PostConstruct
public void init() throws Exception {
unsortedList = daoClientCompany.findAllClientCompanies();
view = fmrws.getClientCompanyView();
reset();
findHttpSessionAttributes();
}
public synchronized String processCompany() {
FacesContext facesCtx = FacesContext.getCurrentInstance();
ClientCompany newCompany = getClientCompany();
getClient().setCompany(newCompany);
getClientCompany().setProspect(isProspectDisabled());
getClientCompany().setCreatedBy(getCreatedBy());
conn = Connection.getConnection();
try {
newCompany = getClientCompany().createClientCompany(conn, getClientCompany().getClientID());
setClientCompany(newCompany);
ClientCompanyEntity companyEntity = workfront2EntityCompany(newCompany);
daoClientCompany.create(companyEntity);
unsortedList = daoClientCompany.findAllClientCompanies();
initCompanyCollection();
} catch (Exception ex) {
facesCtx.addMessage(null, new FacesMessage("Error.",
ex.toString()));
return null;
} finally {
prospectDisabled = false;
}
return "companysuccess";
}
public String cancel() throws Exception {
return processTargetApp(false);
}
public String returnToUserPage() {
setXmlMsgs("");
setClientCompanyName(getCompanyName());
companyCheck();
getClient().setLegalEntity(getClientCompany().getLegalEntityCompany());
return "client";
}
/**
* If the client application is called by another application, this returns
* to calling application.
*
* @param save flag tells whether or not this application completed client
* creation
* @return JSF navigator outcome
* @throws Exception
*/
private String processTargetApp(boolean save) throws Exception {
String result = "client";
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session
= (HttpSession) context.getExternalContext().getSession(false);
if (session.getAttribute("calling_app") == null) {
//Returning to initial client creator page.
setClientCompany(new ClientCompany());
setClient(new User());
} else {
result = (String) session.getAttribute("calling_app");
if (save) {
ClientCreatorAware clientAware = null;
clientAware = (ClientCreatorAware) session.getAttribute(result);
if (clientAware != null) {
clientAware.setNewClient(getClient());
}
//Returning to initial client creator page.
setClientCompany(new ClientCompany());
setClient(new User());
}
session.removeAttribute("calling_app");
if (session.getAttribute("doc_xml") == null) {
session.removeAttribute("doc_xml");
}
}
reset();
return result;
}
public ClientCompanyEntity workfront2EntityCompany(ClientCompany wfCompany) {
ClientCompanyEntity companyEntity = new ClientCompanyEntity();
//set values for JPA client company entity from newly created client company
companyEntity.setId(wfCompany.getId());
companyEntity.setAddPMSurchargeforDocTrans(wfCompany.isAddPMSurchargeforDocTrans());
companyEntity.setBillingEmail(wfCompany.getBillingEmail());
companyEntity.setBillingInstructions(wfCompany.getBillingInstructions());
companyEntity.setCheckKnowledgeMgt(wfCompany.isCheckKnowledgeMgt());
companyEntity.setClientPONumber(wfCompany.getClientPONumber());
companyEntity.setCommissionType(wfCompany.getCommissionType());
companyEntity.setDocTransPricingScheme(wfCompany.getDocTransPricingScheme());
companyEntity.setDtBucket(wfCompany.getDtBucket());
companyEntity.setGuid(wfCompany.getGuid());
companyEntity.setName(wfCompany.getName());
companyEntity.setLegalEntity(wfCompany.getLegalEntity());
companyEntity.setLlsClientID(wfCompany.getLlsClientID());
companyEntity.setLegalEntityCompany(wfCompany.getLegalEntityCompany());
companyEntity.setPassTradosLeveraging(wfCompany.isPassTradosLeveraging());
companyEntity.setPaymentTerms(wfCompany.getPaymentTerms());
companyEntity.setProspect(wfCompany.getProspect());
companyEntity.setSpecialInstructions(wfCompany.getSpecialInstructions());
companyEntity.setUsLinguistsRequired(wfCompany.isUsLinguistsRequired());
return companyEntity;
}