67,512
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Customer customer = new Customer();
Orders order1 = new Orders();
Orders order2 = new Orders();
Orders order3 = new Orders();
customer.setPhone("bbb");
customer.setUsername("bbb");
customer.setBank("bbb");
order1.setOrderId("5555");
order1.setMoney(new Double(100));
order1.setCustomer(customer);
order2.setOrderId("5555");
order2.setMoney(new Double(200));
order2.setCustomer(customer);
order3.setOrderId("5555");
order3.setMoney(new Double(300));
order3.setCustomer(customer);
session.save(order1);
session.save(order2);
session.save(order3);
tx.commit();
session.close();
}
public class Test {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Customer customer = new Customer();
Orders order1 = new Orders();
Orders order2 = new Orders();
Orders order3 = new Orders();
customer.setPhone("bbb");
customer.setUsername("bbb");
customer.setBank("bbb");
order1.setOrderId("5555");
order1.setMoney(new Double(100));
order1.setCustomer(customer);
order2.setOrderId("5555");
order2.setMoney(new Double(200));
order2.setCustomer(customer);
order3.setOrderId("5555");
order3.setMoney(new Double(300));
order3.setCustomer(customer);
customer.addOrders(order1);
customer.addOrders(order2);
customer.addOrders(order3);
session.save(customer);
tx.commit();
session.close();
}
package pojo;
import java.util.HashSet;
import java.util.Set;
/**
* Customer entity.
*
* @author MyEclipse Persistence Tools
*/
public class Customer implements java.io.Serializable {
// Fields
private Integer id;
private String username;
private String bank;
private String phone;
private Set orderses = new HashSet(0);
// Constructors
/** default constructor */
public Customer() {
}
/** full constructor */
public Customer(String username, String bank, String phone, Set orderses) {
this.username = username;
this.bank = bank;
this.phone = phone;
this.orderses = orderses;
}
// Property accessors
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getBank() {
return this.bank;
}
public void setBank(String bank) {
this.bank = bank;
}
public String getPhone() {
return this.phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Set getOrderses() {
return this.orderses;
}
public void setOrderses(Set orderses) {
this.orderses = orderses;
}
public void addOrders(Orders orders){
orderses.add(orders);
}
}
package pojo;
/**
* Orders entity.
*
* @author MyEclipse Persistence Tools
*/
public class Orders implements java.io.Serializable {
// Fields
private Integer id;
private Customer customer;
private Double money;
private String orderId;
// Constructors
/** default constructor */
public Orders() {
}
/** full constructor */
public Orders(Customer customer, Double money, String orderId) {
this.customer = customer;
this.money = money;
this.orderId = orderId;
}
// Property accessors
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public Customer getCustomer() {
return this.customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public Double getMoney() {
return this.money;
}
public void setMoney(Double money) {
this.money = money;
}
public String getOrderId() {
return this.orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
}
<hibernate-mapping>
<class name="pojo.Customer" table="customer" catalog="student">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="username" type="java.lang.String">
<column name="username" length="10" />
</property>
<property name="bank" type="java.lang.String">
<column name="bank" length="20" />
</property>
<property name="phone" type="java.lang.String">
<column name="phone" length="10" />
</property>
<set name="orderses" inverse="true" cascade="all">
<key>
<column name="customer_id" />
</key>
<one-to-many class="pojo.Orders" />
</set>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="pojo.Orders" table="orders" catalog="student">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<many-to-one name="customer" class="pojo.Customer" fetch="select" cascade="all">
<column name="customer_id" />
</many-to-one>
<property name="money" type="java.lang.Double">
<column name="money" precision="22" scale="0" />
</property>
<property name="orderId" type="java.lang.String">
<column name="orderId" length="20" />
</property>
</class>
</hibernate-mapping>
<set name="orderses" inverse="true" cascade="all">
<key>
<column name="customer_id" />
</key>
<one-to-many class="pojo.Orders" />
</set>
<many-to-one name="customer" class="pojo.Customer" fetch="select" cascade="all">
<column name="customer_id" />
</many-to-one>
public class Test {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Customer customer = (Customer) session.load(Customer.class,
new Integer(39));//数据库存在的一个对象
session.delete(customer);
tx.commit();
session.close();
}
}
public class Test {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Customer customer = new Customer();
Orders order1 = new Orders();
Orders order2 = new Orders();
Orders order3 = new Orders();
customer.setPhone("bbb");
customer.setUsername("bbb");
customer.setBank("bbb");
order1.setOrderId("5555");
order1.setMoney(new Double(100));
// order1.setCustomer(customer);
order2.setOrderId("5555");
order2.setMoney(new Double(200));
// order2.setCustomer(customer);
order3.setOrderId("5555");
order3.setMoney(new Double(300));
// order3.setCustomer(customer);
customer.addOrders(order1);
customer.addOrders(order2);
customer.addOrders(order3);
session.save(customer);
session.save(order1);
session.save(order2);
session.save(order3);
tx.commit();
session.close();
}
}
Exception in thread "main" org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: pojo.Orders
at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:78)
at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:755)
at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1143)
at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:39)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:171)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at dao.Test.main(Test.java:38)