Java Hibernate:如何将R中的不同选择器(选择器,键,*)映射到不同的字段?
请让我看看代码Java Hibernate:如何将R中的不同选择器(选择器,键,*)映射到不同的字段?,java,hibernate,orm,Java,Hibernate,Orm,请让我看看代码 @Entity class R { @Id Long id; String selector; long fkey; // other columns... } @Entity class Foo { @Id Long id; // select * from R where selector='A' and fkey=Foo_id @OneToMany Set<R> aSet
@Entity
class R {
@Id
Long id;
String selector;
long fkey;
// other columns...
}
@Entity
class Foo {
@Id
Long id;
// select * from R where selector='A' and fkey=Foo_id
@OneToMany
Set<R> aSet;
// select * from R where selector='B' and fkey=Foo_id
@OneToMany
Set<R> bSet;
}
或者像这样的
@Entity
class Foo {
@Id
Long id;
@OneToMany
@RestrictJoin("selector = 'A'")
Set<R> aSet;
@OneToMany
@RestrictJoin("selector = 'B'")
Set<R> bSet;
}
@实体
福班{
@身份证
长id;
@独身癖
@RestrictJoin(“选择器='A'”)
设定aSet;
@独身癖
@RestrictJoin(“选择器='B'”)
设置bSet;
}
好的,提前谢谢。一个选项是@Filter注释,请看:。下面是一个关于如何使用它们的好例子: 过滤器不需要参数,请查看另一个示例: 请注意,您需要为每个会话启用筛选器,您可以使用筛选器来执行此操作:
如果你决定去每个选择器的一个类,你可能想考虑继承和@判别器列注释,比如:
一个选项是@Filter注释,请查看:。下面是一个关于如何使用它们的好例子: 过滤器不需要参数,请查看另一个示例: 请注意,您需要为每个会话启用筛选器,您可以使用筛选器来执行此操作:
如果你决定去每个选择器的一个类,你可能想考虑继承和@判别器列注释,比如:
如果您想存储另一个表中的一组内容,也许类似于此的东西会有用
@org.hibernate.annotations.CollectionOfElements
@JoinTable (name = "R_A", joinColumns = @JoinColumn(name="ra_id", referencedColumnName="id"))
@org.hibernate.annotations.MapKey (columns = @Column(table = "R_A", name = "key_content"))
@Column(table = "R_A", name = "value_content")
private Map<String, String> raData = new HashMap<String, String>();
@org.hibernate.annotations.collectionfements
@JoinTable(name=“R\u A”,joinColumns=@JoinColumn(name=“ra\u id”,referencedColumnName=“id”))
@org.hibernate.annotations.MapKey(columns=@Column(table=“R\u A”,name=“key\u content”))
@列(table=“R\u A”,name=“value\u content”)
私有映射raData=新HashMap();
如果您想存储另一个表中的一组内容,也许类似的东西会有用
@org.hibernate.annotations.CollectionOfElements
@JoinTable (name = "R_A", joinColumns = @JoinColumn(name="ra_id", referencedColumnName="id"))
@org.hibernate.annotations.MapKey (columns = @Column(table = "R_A", name = "key_content"))
@Column(table = "R_A", name = "value_content")
private Map<String, String> raData = new HashMap<String, String>();
@org.hibernate.annotations.collectionfements
@JoinTable(name=“R\u A”,joinColumns=@JoinColumn(name=“ra\u id”,referencedColumnName=“id”))
@org.hibernate.annotations.MapKey(columns=@Column(table=“R\u A”,name=“key\u content”))
@列(table=“R\u A”,name=“value\u content”)
私有映射raData=新HashMap();