亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

持久性無法識別實體類

持久性無法識別實體類

忽然笑 2023-11-01 21:43:39
我正在開發一個關于我國一些彩票的 java 程序,它有一個包含樂透和其他號碼的數據庫。實體類沒有問題,但是當我運行問題時,我的持久性單元無法識別一個實體類。我是 java 的初學者,提前致謝。下面是實體類:Numbers@Entity@Table(name = "NUMBERS")@XmlRootElement@NamedQueries({    @NamedQuery(name = "Numbers.findAll", query = "SELECT n FROM Numbers n")    , @NamedQuery(name = "Numbers.findById", query = "SELECT n FROM Numbers n WHERE n.id = :id")    , @NamedQuery(name = "Numbers.findByNum", query = "SELECT n FROM Numbers n WHERE n.num = :num AND n.lotto = :lotto")    , @NamedQuery(name = "Numbers.findByAssociated", query = "SELECT n FROM Numbers n WHERE n.num = :num AND n.associated = :associated AND n.lotto = :lotto")    , @NamedQuery(name = "Numbers.findByLotto", query = "SELECT n FROM Numbers n WHERE n.lotto = :lotto")})public class Numbers implements Serializable {    private static final long serialVersionUID = 1L;    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    @Basic(optional = false)    @Column(name = "ID")    private Integer id;    @Basic(optional = false)    @Column(name = "NUM")    private int num;    @Basic(optional = false)    @Column(name = "ASSOCIATED")    private int associated;    @Basic(optional = false)    @Column(name = "LOTTO")    private String lotto;以及我用來插入數據庫的代碼:Numberspublic static boolean insertAlert(EntityManager em, Numbers an) {        boolean success = false;        Alert alert = Check.createAlert(Check.CONFIRMATION, "A?adir números asociados", "?Deseas a?adir estos números?");        Optional<ButtonType> result = alert.showAndWait();}持久性單元可以識別我所有的實體類,但不能識別這個,我不知道如何解決這個問題......
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

我遇到了同樣的問題,這里的答案都沒有解決它。

我的解決方案是將我的 EclipseLink 版本從 2.5.1 更新到最新版本?2.7.7。


查看完整回答
反對 回復 2023-11-01
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

此錯誤的常見原因:

  1. 較舊的持久性 .xml 文件位于不這樣做的類路徑上 有你的彩票。數字輸入。

  2. 用于獲取 EntityManager 的類裝入器不是同一個類裝入器 加載了您傳遞給 em.persist 調用。

第一個問題更為常見,通過啟用 EclipseLink 日志記錄,然后在部署持久性單元時檢查日志以查看加載了哪些類和映射,可以更輕松地找到。它的變體只是部署了錯誤的 jar,首先在類路徑上有一個較舊的 jar 等。

EclipseLink 使用該類在哈希映射中查找元數據,因此如果使用不同的類加載器,它將找不到任何內容。這是一個不太常見的問題,取決于您加載 EntityManagerFactory 和容器類裝入器結構的方式。您會遇到多個 JPA 實體的問題,但這也取決于它們來自哪里。


查看完整回答
反對 回復 2023-11-01
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

Persist 只接受實體,而不是列表。

因此,您必須遍歷數組并分別保留每個 Numbers 對象。

 for (Numbers n : ans) {
     em.persist(ans);
 }


查看完整回答
反對 回復 2023-11-01
  • 3 回答
  • 0 關注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號