私は、db transaltionロジックのいくつかの例を学び、エンティティ注釈を使ってこのdbをどのように変更できるかを理解しようとしています。DB example 1、NとN、論理問題と私は以前のスキーマで次のように翻訳しています:hibernate 5.2.2:db translation logic
モデル0、N Article、Article 1,1 Model。
ユーザ0、Nカート、カート1,1ユーザ。
第0条、Nカート、カート1,1条。
私はクラスとメインのほとんどを作りましたが、ビルド関係の一部が私を止めました。
モデル:
@Entity
@Table(name = "MODEL")
public class Model{
private int id;
private double cost;
private double price;
public model(int id,double cost,double price){
this.id=id;
this.cost=cost;
this.price=price;
}
@Id
@Column(name="idModel")
public void setId(int id){this.id=id;}
public int getId(){return id;}
@Column(name="cost")
public void setCost(double cost){this.cost=cost;}
public double getCost(){return cost;}
@Column(name="price")
public void setPrice(double price){this.price=price;}
public double getPrice(){return price;}
}
記事:
@Entity
@Table(name = "ARTICLE")
public class Article{
private int id;
private String code;
private int quantity;
private Model thisModel;
public Article(int id, String code, int quantity, Model model){
this.id=id;
this.code=code;
this.quantity=quantity;
thisModel=model;
}
@Id
@Column(name="idArticle")
public void setId(int id){this.id=id;}
public int getId(){return id;}
@Column(name="code")
public void setCode(String code){this.code=code;}
public String getCode(){return code;}
@Column(name="quantity")
public void setQuantity(int quantity){this.quantity=quantity;}
public int getQuantity(){return quantity;}
@Column(name="model_idModel")
public void setModel(Model model){this.model=model;}
public Model getModel(){return model;}
}
ユーザー:
@Entity
@Table(name = "USER")
public class User{
private int id
private String name;
public User(int id,String name){
this.id=id;
this.name=name;
}
@Id
@Column(name="idUser")
public void setId(int id){this.id=id;}
public int getId(){return id;}
@Column(name="name")
public void seName(String name){this.name=name;}
public int getName(){return name;}
}
カート:
@Entity
@Table(name = "CART")
public class Cart {
private User user;
private Article article;
publi Cart(User user,Article article){
this.user=user;
this.article=article;
}
@Id
@Column(name="idUser")
public void setUser(User user){this.user=user;}
public User getUser(){return user;}
@Id
@Column(name="idArticle")
public void setArticle(Article article){this.article=article;}
public User getArticle(){return article;}
}
これが私の状況です0
メイン:
public class test(){
public static void main(String[] args) {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session=factory.getCurrentSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
Model m1= new Model (1,12,24);
Model m2= new Model (2,40,88);
Article a1m1 = new Article(1,"blue",200,m1);
Article a2m1 = new Article(2,"rad",100,m1);
Article a1m2 = new Article(1,"only green",2000,m2);
User u1 = new User(1,"Max");
User u2 = new User(2,"Ada");
Set<Cart> Carts = new HashSet<Cart>();
carts.add(new Cart(u1,a2m1));
carts.add(new Cart(u2,a1m2));
session.save(a1m1);
session.save(a2m1);
session.save(a1m2);
session.save(u1);
session.save(u2);
session.save(Carts);
transaction.commit();
} catch (HibernateException e) {
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
}
私も私のメインは完璧ではないことを信じて、実行時に/ compaileは私にいくつかの問題を与えるだろう、と私は、このデシベル換算でいくつかのロジックの概念を失っています。
あなたの質問がありますか? –
あなたが私のコードを実行すると私が期待しているものとは遠く離れているので、クラス間の関連付けのマッピングがすべて失われているので、コードは不完全です。私はそれを解決する方法を理解する必要があり、なぜ他のソリューションの代わりに解決策が必要なのですか? – Francesco
@Francescoコードは不完全で、使用するデータベースはどこで決定しましたか?私は、MySQLやPostgreSQLやHypersonicを期待していますが、私はそれらのどれも見つけませんでした。 –