Java Hibernate:存储primitves的嵌入式映射

Java Hibernate:存储primitves的嵌入式映射,java,hibernate,Java,Hibernate,如何使用Hibernate存储以下实体 @Entity class A { private Map<String, String> b; // getters and setters omitted } @实体 甲级{ 私人地图b; //省略了getter和setter } 看一看 用法示例: @Entity public class User { public String getLastname() { ...} @ElementCollection

如何使用Hibernate存储以下实体

@Entity
class A {
  private Map<String, String> b;

  // getters and setters omitted
}
@实体
甲级{
私人地图b;
//省略了getter和setter
}
看一看

用法示例:

@Entity
public class User {

   public String getLastname() { ...}

   @ElementCollection
   @CollectionTable(name="Nicknames", joinColumns=@JoinColumn(name="user_id"))
   @Column(name="nickname")
   public Set<String> getNicknames() { ... } 
}
@实体
公共类用户{
公共字符串getLastname(){…}
@元素集合
@CollectionTable(name=“昵称”,joinColumns=@JoinColumn(name=“user\u id”))
@列(name=“昵称”)
公共集get昵称(){…}
}
看一看

用法示例:

@Entity
public class User {

   public String getLastname() { ...}

   @ElementCollection
   @CollectionTable(name="Nicknames", joinColumns=@JoinColumn(name="user_id"))
   @Column(name="nickname")
   public Set<String> getNicknames() { ... } 
}
@实体
公共类用户{
公共字符串getLastname(){…}
@元素集合
@CollectionTable(name=“昵称”,joinColumns=@JoinColumn(name=“user\u id”))
@列(name=“昵称”)
公共集get昵称(){…}
}

使用保存

这里有一个例子:

A variable = new A();
variable.b(your_variable);
然后

可以使用。 或者您的意思是通过存储设备存储在数据库中? 然后是:

  SessionFactory factory=cfg.buildSessionFactory();   
  Session session=factory.openSession();  
  Transaction t=session.beginTransaction();   
  A e1=new A();  
  e1.setb(your_variable);  
  session.persist(e1);
  t.commit();
  session.close(); 
提及:你的名字很糟糕。你应该放点别的东西


此外,通过@ElementCollection注释,您可以使用java.util.Map集合。在类的声明中(在您的示例中为A)。

使用保存

这里有一个例子:

A variable = new A();
variable.b(your_variable);
然后

可以使用。 或者您的意思是通过存储设备存储在数据库中? 然后是:

  SessionFactory factory=cfg.buildSessionFactory();   
  Session session=factory.openSession();  
  Transaction t=session.beginTransaction();   
  A e1=new A();  
  e1.setb(your_variable);  
  session.persist(e1);
  t.commit();
  session.close(); 
提及:你的名字很糟糕。你应该放点别的东西


此外,通过@ElementCollection注释,您可以使用java.util.Map集合。在类的声明中(在您的例子中是A)。

您似乎应该使用JPA:

中的@ElementCollection和@CollectionTable:

您似乎应该使用JPA:

中的@ElementCollection和@CollectionTable:。请参阅
@ElementCollection
的可能副本。请参阅可能的副本