草庐IT

oneTomany

全部标签

java - 为什么hibernate为OneToMany映射生成插入和更新

我试图通过一个小例子来理解Hibernate中的一对多映射。我有一个Product和一组Part's。这是我的实体类:Part.java@EntitypublicclassPart{@Id@GeneratedValueintid;StringpartName;//Setters&Getters}Product.java@EntitypublicclassProduct{privateStringserialNumber;privateSetparts=newHashSet();@IdpublicStringgetSerialNumber(){returnserialNumber;}@O

java - JPA - @OneToMany 作为 map

这似乎是一个很常见的案例,但作为JPA新手,我很难弄清楚这一点。我正在使用EclipseLink和PostgreSQL,但这应该只与JPA规范有关。我有一张tablePRIMARY它有一个ID,然后是一堆其他列。还有一张tableSECONDARY在PRIMARY中有一个外键表也​​称为ID.这SECONDARY表有一个复合键ID和代表语言环境的varchar。所以,在Primary实体我想要一个类型为Map的字段其中键是来自SECONDARY的语言环境字符串表和条目是Secondary实体。我的Secondary类看起来像这样:@EntitypublicclassSecondary{

java - @OneToMany 映射列表大小限制

有什么方法可以限制JPA中@OneToMany关系的列表大小吗?这是我的代码示例:@OneToMany(mappedBy="publication",cascade=CascadeType.PERSIST)privateListcommentList;我正在使用EclipseLink2.3JPA实现。提前致谢。 最佳答案 Bean验证规范(JSR-303)的一部分是@Size(min=,max=)注释:SupportedtypesareString,Collection,Mapandarrays.Checkiftheannotate

java - hibernate 4 @OneToMany 列表<字符串>

对于@OneToMany关系,我是否必须映射到对象?我有下面的例子@Entity@Table(name="FOO_TABLE")publicclassFoo{@Id@Column(name="ID")@GeneratedValueprivateintid;?????privateListbars;}如果酒吧是我会做的一个对象@ManyToOne@JoinColumn(name="ID_FOO")问题就解决了。但是,我想避免创建一个仅表示一对字符串(引用键、值)的对象。FOO和BAR存储在不同的表中CREATETABLEFoo(IDINTEGERNOTNULLAUTO_INCREMENT

java - @LazyCollection(LazyCollectionOption.FALSE) 和@OneToMany(fetch = FetchType.EAGER) 之间的区别

我对“延迟加载”有一个疑问。使用@LazyCollection(LazyCollectionOption.FALSE)和@OneToMany(fetch=FetchType.EAGER)有什么区别?在我的应用程序中我使用了两个列表,但是如果我以这种格式使用:@OneToMany(mappedBy="consultaSQL",orphanRemoval=true,fetch=FetchType.EAGER,cascade=CascadeType.ALL)privateListparametros;@OneToMany(mappedBy="consulta",orphanRemoval=t

java - Hibernate/JPA 单向 OneToMany 与源表中常量值的连接条件

我想使用Hibernate注释来表示使用连接的单向一对多关系。我想在连接上添加一个条件,这样它只会在源表(“一个”)中的列等于一个常量值时发生。例如。SELECT*FROMbuildingsbLEFTJOINbuilding_floorsbfonbf.building_id=b.idANDb.type='OFFICE'我想表示该查询的b.type='OFFICE'部分。我的问题与这个问题非常相似,只是我在源表上有一个条件。JPA/HibernateJoinOnConstantValueJava实体如下所示:@Entity@Table(name="buildings")publiccla

mysql - 为基于 oneTomany 关系的查询编写 queryDSL 谓词查询

我正在使用spring-data、QueryDSL和MySQL。问题的主要目的是了解如何以queryDSL方式进行此类查询。给出的例子只是一个简单的例子来给出思路。例如,有两个表Employee和Certificate。两者之间的关系是一个(员工)到多个(证书)下面是表格,Employee(id,first_name,last_name);Certificate(id,name,date,fk_emp);QueryDSL的谓词应该是什么Returningallemployeeswithnamecontains(infirst_nameandlast_name)andfromthatre

java - JPA OneToMany 集合的条件

如果我有这个实体:@EntityclassPet{@Idlongid;publicenumState{ALIVE,DEAD}@Enumerated(EnumType.STRING)@...Statestate;@...Stringname;}我可以创建这样的映射吗:@EntityclassOwner{@OneToMany(condition="state=ALIVE")//orsomethinglikethatSetalivePets;@OneToMany(condition="state=DEAD")SetdeadPets;} 最佳答案

java - 用于过滤 @OneToMany 关联结果的注释

我有两个表之间的父/子关系,以及我的Java类中的相应映射。表格大致如下:A(refnumber,stuffvarchar2(4000))B(a_refnumber,othernumber,foovarchar2(200))和Java代码:@EntityclassA{@Id@Column(name="REF")privateintref;@OneToMany@JoinColumn(name="A_REF",referencedName="REF")privateSetbs;}@EntityclassB{@Id@Column(name="A_REF")privateintaRef;@Id

java - 是否可以使用 Hibernate 或 JPA 注释来限制 @OneToMany 集合的大小?

如果我在使用JPA/HibernateAnnotations的POJO中有以下映射集合:@OneToMany(mappedBy="columnName",fetch=FetchType.LAZY)@OrderBy("aField")@MapKeyJoinColumn(name="id_fk")@LazyCollection(value=LazyCollectionOption.EXTRA)privateSetcollection=newHashSet();是否可以将加载集合的大小限制为特定数字n或将页面大小设置为延迟加载集合的前n个元素,而不加载所有项目或来自该类的其他实例的任何其他项