私のクラスは正しくマップされているようです(オブジェクトが存続しようとするとDBにテーブルが作成されていれば)私は、新しく作成されたインスタンスをDBに永続化させることはできません。Hibernateエンティティは永続化されていませんが、テーブルとクエリを作成することができます
私はコンソールでshow SQLクエリを持っており、それがINSERTクエリを生成していないが、(最大)を選択しようとしているIDは、その後
誰かが私はなぜ把握助けてくださいもらえますか?
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
User myUser = new User();
myUser.setUserId("Acccc");
myUser.setPassword("abc");
session.save(myUser);
とクラス:
@Entity
@Table(name = "users")
@SuppressWarnings("serial")
public class User implements Serializable
{
//Properties
@Id
@Column
private int id;
@Column
private String userId;
@Column
private String password;
//Getters
public int getId() { return id; }
public String getUserId() { return userId; }
public String getPassword() { return password; }
//Setters
public void setId(int id) { this.id = id; }
public void setUserId(String userId) { this.userId = userId; }
public void setPassword(String password) { this.password = password; }
}
と設定:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="nz.co.genesis.healthsafety.stripes.model.User" table="users">
<id name="id" type="int" column="id" >
</id>
<property name="userId" type="java.lang.String" column="userId" not-null="false" length="45" />
<property name="password" type="java.lang.String" column="password" not-null="false" length="45" />
</class>
</hibernate-mapping>
そしてDB:
id : PK NN AI
userId varchar45, default NULL
password varchar45, default: null
は整数 –
ラッパークラスにintを変更してみてください、あなたは、トランザクションをコミットしていますか? –
どのようにトランザクションをコミットするのですか?私は.save()がそれをしたと思った? – Baconbeastnz