新增了一个实体类,执行写入报错,招不到jpa 类
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();
本帖最后由 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 省略==============
}
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$");
} 已解决~~~ :victory: 怎么解决的呀,分享一下呗。 补充: 添加完实体之后需要在x_base_core_project 下面x_organization_**(调用实体类的项目下面) 在里面的containerEntities下面添加对应实体的路径加类名 本帖最后由 simple 于 2023-12-21 18:19 编辑
请问一下,我参照本案例新建了一个实体类,能够正常创建数据表,但是执行写入操作后没有写入任何数据,后台没有任何报错日志,请问是什么原因?写入原有系统表是有数据的——基于V8.1.2版本。 论坛管理员 发表于 2022-4-25 09:57
请版主帮忙指点一下,谢谢。
页:
[1]