Java 别名太长,无法与@manytomy关联
我使用的是Oracle10g方言,但hibernate为许多关联创建的表名太长Java 别名太长,无法与@manytomy关联,java,oracle,hibernate,Java,Oracle,Hibernate,我使用的是Oracle10g方言,但hibernate为许多关联创建的表名太长 new org.hibernate.dialect.Oracle10gDialect().getMaxAliasLength() == 20 关系定义如下: ISImporterProfile: @JsonIgnore @ManyToMany @JoinTable( name="IS_IMPORTER_NODE_PROFILE" , joinColumns={ @JoinColumn
new org.hibernate.dialect.Oracle10gDialect().getMaxAliasLength() == 20
关系定义如下:
ISImporterProfile:
@JsonIgnore
@ManyToMany
@JoinTable(
name="IS_IMPORTER_NODE_PROFILE"
, joinColumns={
@JoinColumn(name="PROFILE_ID")
}
, inverseJoinColumns={
@JoinColumn(name="NODE_ID")
}
)
private List<ISImporterNode> importerNodes;
@JsonIgnore
@许多
@可接合(
name=“是\u导入器\u节点\u配置文件”
,连接柱={
@JoinColumn(name=“PROFILE\u ID”)
}
,反向连接列={
@JoinColumn(name=“NODE\u ID”)
}
)
私有列表重要节点;
ISImporterNode:
@ManyToMany
private List<ISImporterProfile> ISImporterProfiles;
@manytomy
私有列表是导入配置文件;
Hibernate在获取节点上的getISImporterProfiles()时创建此选项
选择isimporter0。is importer\U node\U id与is importer\U node\U i1\U 0\U id相同,
isimporter0。isimporter_配置文件id作为isimporter_配置文件2_1_0,
isimporter1_uU1.id作为id1_3_U1,isimporter1_U1.config作为config2_3_U1,
isimporter1_u0.config_xslt作为配置_xslt3_3_1,isimporter1_0.enabled
当启用4_3_1_时,isimporter1锁定为locked5_3_1_,
isimporter1_u1.名称为name6_3_1_1,isimporter1_1.同步为sync7_3_1_1来自
是导入器节点导入器配置文件,
进口商档案是进口商吗?在哪里
isimporter0_u0.isimporter_配置文件_id=isimporter1_u0.id和
isimporter0。是否为导入器节点id=
这当然会创建ORA-00972异常,因为它超过30个字符。如何在不必与NamingStrategy斗争的情况下解决此问题?将mappedBy=“importerNodes”
添加到ISImporterNode
@ManyToMany(mappedBy = "importerNodes")
private List<ISImporterProfile> ISImporterProfiles;
@ManyToMany(mappedBy=“importerNodes”)
私有列表是导入配置文件;
如果不指定关系的所有者(mappedBy),结果将不是预期的结果(可能会有四个表)。另外,您的实体必须是javabean约定(空构造函数、camelCase属性和getter/setter),否则当您通过getter获取该属性时,可能会遇到问题
@ManyToMany(mappedBy = "importerNodes")
private List<ISImporterProfile> isImporterProfiles;
@ManyToMany(mappedBy=“importerNodes”)
私有列表是导入配置文件;
是的,我可以接受,因为is*通常是布尔值,这就是为什么我将它保留为大写。为什么不使用其他标识符,如appearsOnImporterProfiles等。?