Java JPA实体持久化方法不';t在数据库中创建新表记录

Java 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="

我在Wildfly 19上使用JTA JPA,persist方法不会在MySQL数据库中创建记录。我已经检查并再次检查了数据源和Wildfly/MySQL数据库连接。我在运行查询时也遇到了问题,因为我从MySQL中得到了一个“Database not selected”错误,最后通过使用“use”sql命令添加一个本机查询来修复该错误。当我执行持久化操作时,没有错误,但实体不会被保存。代码如下所述。任何帮助都将不胜感激

Persistence.xml

<?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;
    }