查看: 4855|回复: 8

新增了一个实体类,执行写入报错,招不到jpa 类

升级   50.67%

10

主题

23

回帖

126

积分

注册会员

Rank: 2

积分
126
发表于 2022-4-24 11:38:22 | 显示全部楼层 |阅读模式
java.lang.Exception: can not find jpa assignable class for class com.x.organization.core.entity.SdyUser.
        at com.x.base.core.container.factory.SliceEntityManagerContainerFactory.assignableFrom(SliceEntityManagerContainerFactory.java:109)
        at com.x.base.core.container.EntityManagerContainerBasic.get(EntityManagerContainerBasic.java:33)
        at com.x.base.core.container.EntityManagerContainerBasic.beginTransaction(EntityManagerContainerBasic.java:44)
        at com.x.organization.assemble.authentication.jaxrs.sdy.ActionLogin.execute(ActionLogin.java:83)
        at com.x.organization.assemble.authentication.jaxrs.sdy.SdyAction.getLogin(SdyAction.java:39)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)




咋x_organization_core_entity模块中新增了一个实体类,然后再x_organization_assemble_authentication模块中接口调用写入报以上的错,我看了编译后也有这个类的,奇怪了,加了实体类有需要在其他地方额外配置吗。

写入的代码就是 //开始保存
emc.beginTransaction(SdyUser.class);
emc.persist(sdyUser);
emc.commit();

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   50.67%

10

主题

23

回帖

126

积分

注册会员

Rank: 2

积分
126
发表于 2022-4-24 11:45:38 | 显示全部楼层
本帖最后由 zhou.sir 于 2022-4-24 20:14 编辑

实体类



package com.x.organization.core.entity;

import com.x.base.core.entity.JpaObject;
import com.x.base.core.entity.SliceJpaObject;
import com.x.base.core.entity.annotation.CheckPersist;
import com.x.base.core.entity.annotation.ContainerEntity;
import com.x.base.core.entity.annotation.Flag;
import com.x.base.core.entity.type.GenderType;
import com.x.base.core.project.annotation.FieldDescribe;
import org.apache.openjpa.persistence.jdbc.Index;

import javax.persistence.*;

@Entity
@ContainerEntity(dumpSize = 200, type = ContainerEntity.Type.content, reference = ContainerEntity.Reference.strong)
@Table(name = PersistenceProperties.SdyUser.table, uniqueConstraints = {
                @UniqueConstraint(name = PersistenceProperties.SdyUser.table + JpaObject.IndexNameMiddle
                                + JpaObject.DefaultUniqueConstraintSuffix, columnNames = { JpaObject.IDCOLUMN,
                                                JpaObject.CREATETIMECOLUMN, JpaObject.UPDATETIMECOLUMN, JpaObject.SEQUENCECOLUMN }) })
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class SdyUser extends SliceJpaObject {

        private static final long serialVersionUID = 5733185578089403689L;

        private static final String TABLE = PersistenceProperties.SdyUser.table;

        /**
         * 这个方法暂且不管
         * @throws Exception
         */
        @Override
        public void onPersist() throws Exception {

        }

        @Override
        public String getId() {
                return id;
        }

        @Override
        public void setId(String id) {
                this.id = id;
        }

        @FieldDescribe("数据库主键,自动生成.")
        @Id
        @Column(length = length_id, name = ColumnNamePrefix + id_FIELDNAME)
        private String id = createId();

        /* 以上为 JpaObject 默认字段 */

        /* 更新运行方法 */

        /* Entity 默认字段结束 */

        public static final String userId_FIELDNAME = "userId";
        @FieldDescribe("userId")
        @Enumerated(EnumType.STRING)
        @Column(length = GenderType.length, name = ColumnNamePrefix + userId_FIELDNAME)
        @Index(name = TABLE + IndexNameMiddle + userId_FIELDNAME,unique = true)
        @CheckPersist(allowEmpty = false)
        private String userId;

        public static final String account_FIELDNAME = "account";
        @FieldDescribe("账号")
        @Lob
        @Basic(fetch = FetchType.EAGER)
        @Column(length = JpaObject.length_128K, name = ColumnNamePrefix + account_FIELDNAME)
        private String account;

        public static final String phoneNumber_FIELDNAME = "phoneNumber";
        @FieldDescribe("用户绑定手机号")
        @Lob
        @Basic(fetch = FetchType.EAGER)
        @Column(length = JpaObject.length_128K, name = ColumnNamePrefix + phoneNumber_FIELDNAME)
        private String phoneNumber;

        public static final String email_FIELDNAME = "email";
        @FieldDescribe("邮箱地址")
        @Lob
        @Basic(fetch = FetchType.EAGER)
        @Column(length = JpaObject.length_128K, name = ColumnNamePrefix + email_FIELDNAME)
        private String email;

        public static final String name_FIELDNAME = "name";
        @FieldDescribe("昵称")
        @Column(length = length_255B, name = ColumnNamePrefix + name_FIELDNAME)
        @CheckPersist(allowEmpty = true)
        private String name;

        public static final String avatar_FIELDNAME = "avatar";
        @FieldDescribe("头像地址")
        @Column(length = length_255B, name = ColumnNamePrefix + avatar_FIELDNAME)
        @CheckPersist(allowEmpty = true)
        private String avatar;

        public static final String hbOfficeUserId_FIELDNAME = "hbOfficeUserId";
        @FieldDescribe("账号id")
        @Column(length = length_255B, name = ColumnNamePrefix
                        + hbOfficeUserId_FIELDNAME)
        @CheckPersist(allowEmpty = true)
        private String hbOfficeUserId;


        public static final String tbLevel_FIELDNAME = "tbLevel";
        @Flag
        @FieldDescribe("淘宝认证等级")
        @Column(length = length_255B, name = ColumnNamePrefix + tbLevel_FIELDNAME)
        @CheckPersist(allowEmpty = true, simplyString = false)
        private String tbLevel;


        public static final String jdLevel_FIELDNAME = "jdLevel";
        @Flag
        @FieldDescribe("京东认证等级")
        @Column(length = length_255B, name = ColumnNamePrefix + jdLevel_FIELDNAME)
        @CheckPersist(allowEmpty = true, simplyString = false)
        private String jdLevel;


        public static final String pddLevel_FIELDNAME = "pddLevel";
        @Flag
        @FieldDescribe("拼多多认证等级")
        @Column(length = length_255B, name = ColumnNamePrefix + pddLevel_FIELDNAME)
        @CheckPersist(allowEmpty = true, simplyString = false)
        private String pddLevel;

        public static final String alibabaLevel_FIELDNAME = "alibabaLevel";
        @Flag
        @FieldDescribe("1688认证等级")
        @Column(length = length_255B, name = ColumnNamePrefix + alibabaLevel_FIELDNAME)
        @CheckPersist(allowEmpty = true, simplyString = false)
        private String alibabaLevel;


        public static final String dydrLevel_FIELDNAME = "dydrLevel";
        @Flag
        @FieldDescribe("抖音达人认证等级")
        @Column(length = length_255B, name = ColumnNamePrefix + dydrLevel_FIELDNAME)
        @CheckPersist(allowEmpty = true, simplyString = false)
        private String dydrLevel;


        public static final String dyxdLevel_FIELDNAME = "dyxdLevel";
        @Flag
        @FieldDescribe("抖音小店认证等级")
        @Column(length = length_255B, name = ColumnNamePrefix + dyxdLevel_FIELDNAME)
        @CheckPersist(allowEmpty = true, simplyString = false)
        private String dyxdLevel;


        public static final String tbCategoryId_FIELDNAME = "tbCategoryId";
        @Flag
        @FieldDescribe("淘宝认证类目id")
        @Column(length = length_255B, name = ColumnNamePrefix + tbCategoryId_FIELDNAME)
        @CheckPersist(allowEmpty = true, simplyString = false)
        private String tbCategoryId;


        public static final String tbCategoryName_FIELDNAME = "tbCategoryName";
        @Flag
        @FieldDescribe("淘宝认证类目名称")
        @Column(length = length_255B, name = ColumnNamePrefix + tbCategoryName_FIELDNAME)
        @CheckPersist(allowEmpty = true, simplyString = false)
        private String tbCategoryName;


        ===================get set 省略==============
}
回复

使用道具 举报

升级   50.67%

10

主题

23

回帖

126

积分

注册会员

Rank: 2

积分
126
发表于 2022-4-24 11:46:44 | 显示全部楼层
PersistenceProperties类中加入   这段。还有啥漏配置的吗

public static class SdyUser {
                public static final String table = "sdy_user";
                public static final String distinguishNameCharacter = "P";
                public static final Pattern distinguishedName_pattern = Pattern.compile("^(\\S+)\\@(\\S+)\\@P$");
        }
回复

使用道具 举报

升级   50.67%

10

主题

23

回帖

126

积分

注册会员

Rank: 2

积分
126
发表于 2022-4-24 20:33:00 | 显示全部楼层
已解决~~~
回复

使用道具 举报

升级   100%

138

主题

1万

回帖

3万

积分

超级版主

Rank: 8Rank: 8

积分
37065
发表于 2022-4-25 09:57:24 | 显示全部楼层
回复

使用道具 举报

升级   56.67%

1

主题

5

回帖

135

积分

注册会员

Rank: 2

积分
135
发表于 2022-10-31 13:27:16 | 显示全部楼层
怎么解决的呀,分享一下呗。
回复

使用道具 举报

升级   56.67%

1

主题

5

回帖

135

积分

注册会员

Rank: 2

积分
135
发表于 2022-10-31 15:17:07 | 显示全部楼层
补充:   添加完实体之后需要在x_base_core_project 下面  x_organization_**(调用实体类的项目下面) 在里面的containerEntities下面添加对应实体的路径加类名
回复

使用道具 举报

升级   3.33%

4

主题

8

回帖

210

积分

中级会员

Rank: 3Rank: 3

积分
210
发表于 2023-12-21 18:16:46 | 显示全部楼层
本帖最后由 simple 于 2023-12-21 18:19 编辑

请问一下,我参照本案例新建了一个实体类,能够正常创建数据表,但是执行写入操作后没有写入任何数据,后台没有任何报错日志,请问是什么原因?写入原有系统表是有数据的——基于V8.1.2版本。
回复

使用道具 举报

升级   3.33%

4

主题

8

回帖

210

积分

中级会员

Rank: 3Rank: 3

积分
210
发表于 2023-12-21 18:24:41 | 显示全部楼层

请版主帮忙指点一下,谢谢。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread