Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 别名太长,无法与@manytomy关联_Java_Oracle_Hibernate - Fatal编程技术网

Java 别名太长,无法与@manytomy关联

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

我使用的是Oracle10g方言,但hibernate为许多关联创建的表名太长

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等。?