Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate+Anotation+Spring, different object with the same identifie 
:(
    Опции темы
baracuda25
Дата 23.4.2010, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.4.2010

Репутация: нет
Всего: нет



Здраствуйте) Работаю с Hibernate 3.5+Spring.... Моя проблема такова "different object with the same identifier value was already associated with the session" ..... Есть проект десктопный в котором только один Hibernate и вот решил написать WEB, но что в том и в том выскакивает даная ошибка! Боролся разными способами но максимум чего добился так это дублирование записей и багов в проге....  В общем покажу не на словах а на деле. 
Краткое вступление: Имееться несколько класов Enity и cоотведственно EnityDAO, которые в свою очередь задеплоины в Service. 
Emploee  
Код

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
    name="emploeetype",
    discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue("emploee")
public abstract class Emploee implements Serializable,Enity{
    private int id;

    @Id
    @Column(name = "id", nullable = false, length = 10)
    @GeneratedValue(strategy = GenerationType.AUTO)
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    private String name;

    @Basic
    @Column(name = "name", nullable = false)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String surname;

    @Basic
    @Column(name = "surname", nullable = false)
    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    private String rank;

    @Basic
    @Column(name = "rank")
    public String getRank() {
        return rank;
    }

    public void setRank(String rank) {
        this.rank = rank;
    }

    private double salary;

    @Basic
    @Column(name = "salary", nullable = false, length = 22)
    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    private Date entersystem;

    @Basic
    @Column
    @Temporal(value=TemporalType.DATE)
    public Date getEntersystem() {
        return entersystem;
    }

    public void setEntersystem(Date entersystem) {
        this.entersystem = entersystem;
    }

    private String pass;

    @Basic
    @Column(name = "pass", nullable = false)
    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    private int bonus;

    @Basic
    @Column(name = "bonus", nullable = false, length = 10)
    public int getBonus() {
        return bonus;
    }

    public void setBonus(int bonus) {
        this.bonus = bonus;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Emploee)) return false;

        Emploee emploee = (Emploee) o;

        if (bonus != emploee.bonus) return false;
        if (id != emploee.id) return false;
        if (Double.compare(emploee.salary, salary) != 0) return false;
        if (entersystem != null ? !entersystem.equals(emploee.entersystem) : emploee.entersystem != null) return false;
        if (name != null ? !name.equals(emploee.name) : emploee.name != null) return false;
        if (pass != null ? !pass.equals(emploee.pass) : emploee.pass != null) return false;
        if (rank != null ? !rank.equals(emploee.rank) : emploee.rank != null) return false;
        if (surname != null ? !surname.equals(emploee.surname) : emploee.surname != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result;
        long temp;
        result = id;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (surname != null ? surname.hashCode() : 0);
        result = 31 * result + (rank != null ? rank.hashCode() : 0);
        temp = salary != +0.0d ? Double.doubleToLongBits(salary) : 0L;
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        result = 31 * result + (entersystem != null ? entersystem.hashCode() : 0);
        result = 31 * result + (pass != null ? pass.hashCode() : 0);
        result = 31 * result + bonus;
        return result;
    }
}


Order
Код

@Entity
@Table(catalog = "baracuda", name = "order1")
public class Order implements Serializable,Enity{
    private long id;

    @Id
    @Column(name = "id", nullable = false, length = 11)
    @GeneratedValue(strategy = GenerationType.AUTO)    
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    private Date dateorder;

    @Basic
    @Temporal(value=TemporalType.DATE)
    @Column(name = "dateorder", nullable = false, length = 10)
    public Date getDateorder() {
        return dateorder;
    }

    public void setDateorder(Date dateorder) {
        this.dateorder = dateorder;
    }

    private double total;

    @Basic
    @Column(name = "total", nullable = false, length = 22)
    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }

    private double dohod;

    @Basic
    @Column(name = "dohod", nullable = false, length = 22)
    public double getDohod() {
        return dohod;
    }

    public void setDohod(double dohod) {
        this.dohod = dohod;
    }

    private Customer customer;

    @ManyToOne(cascade= {CascadeType.ALL}, fetch= FetchType.LAZY)
    @JoinColumn(name="customer_id")
    public Customer getCustomer() {
        return customer;
    }

    private Seller seller;

    @ManyToOne(cascade= {CascadeType.ALL}, fetch= FetchType.LAZY)
    @JoinColumn(name="seller_id")
    public Seller getSeller() {
        return seller;
    }

    public void setSeller(Seller seller) {
        this.seller = seller;
    }


    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    private List<Product> products=new ArrayList<Product>();
    
    @OneToMany(cascade = CascadeType.ALL,fetch= FetchType.LAZY)
    @JoinTable(name ="product_seiles",joinColumns = { @JoinColumn(name = "order_id") }, inverseJoinColumns = { @JoinColumn(name = "product_id") })
    public List<Product> getProducts() {
        return products;
    }

    public void setProducts(List<Product> products) {
        this.products = products;
    } 


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Order)) return false;

        Order order = (Order) o;

        if (Double.compare(order.dohod, dohod) != 0) return false;
        if (id != order.id) return false;
        if (Double.compare(order.total, total) != 0) return false;
        if (customer != null ? !customer.equals(order.customer) : order.customer != null) return false;
        if (dateorder != null ? !dateorder.equals(order.dateorder) : order.dateorder != null) return false;
        if (products != null ? !products.equals(order.products) : order.products != null) return false;
        if (seller != null ? !seller.equals(order.seller) : order.seller != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result;
        long temp;
        result = (int) (id ^ (id >>> 32));
        result = 31 * result + (dateorder != null ? dateorder.hashCode() : 0);
        temp = total != +0.0d ? Double.doubleToLongBits(total) : 0L;
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = dohod != +0.0d ? Double.doubleToLongBits(dohod) : 0L;
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        result = 31 * result + (customer != null ? customer.hashCode() : 0);
        result = 31 * result + (seller != null ? seller.hashCode() : 0);
        result = 31 * result + (products != null ? products.hashCode() : 0);
        return result;
    }
}

Product
Код

@Entity
@Table(catalog = "baracuda", name = "product")
public class Product implements Serializable,Enity{
    private int id;

    @Id
    @Column(name = "ID", nullable = false, length = 10)
    @GeneratedValue(strategy = GenerationType.AUTO)
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    private int size;

    @Basic
    @Column(name = "size", nullable = false, length = 10)
    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    private double sobivartist;

    @Basic
    @Column(name = "sobivartist", nullable = false, length = 22)
    public double getSobivartist() {
        return sobivartist;
    }

    public void setSobivartist(double sobivartist) {
        this.sobivartist = sobivartist;
    }

    private double tsena;

    @Basic
    @Column(name = "tsena", nullable = false, length = 22)
    public double getTsena() {
        return tsena;
    }

    public void setTsena(double tsena) {
        this.tsena = tsena;
    }

    private String name;

    @Basic
    @Column(name = "name", nullable = false)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String firma;

    @Basic
    @Column(name = "firma", nullable = false)
    public String getFirma() {
        return firma;
    }

    public void setFirma(String firma) {
        this.firma = firma;
    }

    private int garanty;

    @Basic
    @Column(name = "garanty", nullable = false, length = 10)
    public int getGaranty() {
        return garanty;
    }

    public void setGaranty(int garanty) {
        this.garanty = garanty;
    }

    private Date postuplenie;

    @Basic
    @Column
    @Temporal(value=TemporalType.DATE)
    public Date getPostuplenie() {
        return postuplenie;
    }

    public void setPostuplenie(Date postuplenie) {
        this.postuplenie = postuplenie;
    }

    private String kategory;

    @Basic
    @Column(name = "kategory", nullable = false)
    public String getKategory() {
        return kategory;
    }

    public void setKategory(String kategory) {
        this.kategory = kategory;
    }

    private String type;

    @Basic
    @Column(name = "type", nullable = false)
    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Product product = (Product) o;

        if (garanty != product.garanty) return false;
        if (id != product.id) return false;
        if (size != product.size) return false;
        if (Double.compare(product.sobivartist, sobivartist) != 0) return false;
        if (Double.compare(product.tsena, tsena) != 0) return false;
        if (firma != null ? !firma.equals(product.firma) : product.firma != null) return false;
        if (kategory != null ? !kategory.equals(product.kategory) : product.kategory != null) return false;
        if (name != null ? !name.equals(product.name) : product.name != null) return false;
        if (postuplenie != null ? !postuplenie.equals(product.postuplenie) : product.postuplenie != null) return false;
        if (type != null ? !type.equals(product.type) : product.type != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result;
        long temp;
        result = id;
        result = 31 * result + size;
        temp = sobivartist != +0.0d ? Double.doubleToLongBits(sobivartist) : 0L;
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = tsena != +0.0d ? Double.doubleToLongBits(tsena) : 0L;
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (firma != null ? firma.hashCode() : 0);
        result = 31 * result + garanty;
        result = 31 * result + (postuplenie != null ? postuplenie.hashCode() : 0);
        result = 31 * result + (kategory != null ? kategory.hashCode() : 0);
        result = 31 * result + (type != null ? type.hashCode() : 0);
        return result;
    }
}

Customer
Код

@Entity
@Table(catalog = "baracuda", name = "customer")
public class Customer implements Serializable,Enity{
    private int id;

    @Id
    @Column(name = "id", nullable = false, length = 10)
    @GeneratedValue(strategy = GenerationType.AUTO)
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    private String name;

    @Basic
    @Column(name = "name", nullable = false)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String surname;

    @Basic
    @Column(name = "surname", nullable = false)
    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    private int bonus;

    @Basic
    @Column(name = "bonus", nullable = false, length = 10)
    public int getBonus() {
        return bonus;
    }

    public void setBonus(int bonus) {
        this.bonus = bonus;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Customer customer = (Customer) o;

        if (bonus != customer.bonus) return false;
        if (id != customer.id) return false;
        if (name != null ? !name.equals(customer.name) : customer.name != null) return false;
        if (surname != null ? !surname.equals(customer.surname) : customer.surname != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (surname != null ? surname.hashCode() : 0);
        result = 31 * result + bonus;
        return result;
    }

    private List<Order> order;

    @OneToMany(mappedBy = "customer",cascade = CascadeType.ALL,fetch= FetchType.EAGER)

    public List<Order> getOrder() {
        return order;
    }

    public void setOrder(List<Order> order) {
        this.order = order;
    }
}

Ну и из наследников Emploee
Код

@Entity
@DiscriminatorValue("Seller")
public class Seller extends Emploee {

   private List<Order> order=new ArrayList<Order>();

   public Seller(){
        super();
   }

   @OneToMany(mappedBy="seller",cascade= CascadeType.ALL,fetch = FetchType.EAGER)
   public List<Order> getOrder() {
        return order;
    }

    public void setOrder(List<Order> order) {
        this.order = order;
    }
}

Вот его сервис в которого задеплоины с помощью Springa EnityDAO(не судите грубо, это тестовый варинт)
SellerService
Код

public class SellerService implements EmploeeService{
    private CustomerDaoImpl customerDao;
    private EmploeeDaoImpl emploeeDao;
    private OrderDaoImpl orderDao;
    private ProductDaoImpl productDao;

    public void setCustomerDao(CustomerDaoImpl customerDao) {
        this.customerDao = customerDao;
    }

    public void setEmploeeDao(EmploeeDaoImpl emploeeDao) {
        this.emploeeDao = emploeeDao;
    }

    public void setOrderDao(OrderDaoImpl orderDao) {
        this.orderDao = orderDao;
    }

    public void setProductDao(ProductDaoImpl productDao) {
        this.productDao = productDao;
    }

    public CustomerDaoImpl getCustomerDao() {
        return customerDao;
    }

    public EmploeeDaoImpl getEmploeeDao() {
        return emploeeDao;
    }

    public OrderDaoImpl getOrderDao() {
        return orderDao;
    }

    public ProductDaoImpl getProductDao() {
        return productDao;
    }
}

Все DAO наследуют HibernateDaoSupport и мой интерфейс вот один з DAO на котором выскакивает ошибка
OrderDAO
Код

@Repository
public class OrderDaoImpl extends HibernateDaoSupport implements DatabaseDao {
    @Transactional
    public void addItem(Enity obj) {
        getHibernateTemplate().merge(obj);
    }
   
    @Transactional
    public Order getOrderByTotalDohodSellerCustomer(final Double total,
                                                    final Double dohod,
                                                    final Customer cus,
                                                    final Seller sel) {
        return (Order)getHibernateTemplate().execute(new HibernateCallback(){
            public Object doInHibernate(Session session) throws
                HibernateException, SQLException {
                Criteria crit=session.createCriteria(Order.class).add(Restrictions.conjunction()
                        .add(eq("dohod",dohod))
                        .add(eq("total",total))
                        .add(eq("seller",sel))
                        .add(eq("customer",cus)));
                return  crit.uniqueResult();

            }
        });
    }
    @Transactional
    public void changeItem(Enity  obj) {
        getHibernateTemplate().saveOrUpdate(obj);
        getSession().flush();
    }
    @Transactional
    public Object getItembyId(int id) {
        return getHibernateTemplate().get(Order.class,id);
    }
    @Transactional
    public void deleteItem(Enity  obj) {
        getHibernateTemplate().delete(obj);
        getSession().flush();
    }
    @Transactional
    public List getAllItem() {
        return getHibernateTemplate().loadAll(Order.class);
    }
    @Transactional
    public void deleteAllItem() {
        getHibernateTemplate().deleteAll(getAllItem());
        getSession().flush();
    }

}

Ну и собственно маленький тестик в результате чего все и происходит
Код

public class Main {
   final static Logger logger = LoggerFactory.getLogger(Main.class);
   static BeanFactory factory;
   static {
        try {
             factory=new XmlBeanFactory(new FileSystemResource("./src/spring-config.xml"));
        }
        catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);
        }
    }
    public static void main(final String[] args){
        SellerService seller=(SellerService)factory.getBean("sellerService");
        for(Object emp:seller.getEmploeeDao().getAllItem()) {
            Emploee obj=(Emploee)emp;
            System.out.println(obj.getSurname());
        }
        System.out.println();
        /*Seller sel=new Seller();
        sel.setBonus(0);
        sel.setName("Evgen");
        sel.setSurname("Taranenko");
        sel.setEntersystem(new Date());
        sel.setPass("911");
        sel.setRank("seller");
        sel.setSalary(5000);
        seller.getEmploeeDao().addItem(sel);  */
        for(Object emp:seller.getCustomerDao().getAllItem()) {
            Customer obj=(Customer)emp;
            System.out.println(obj.getSurname());
        }
        Seller sel1= (Seller) seller.getEmploeeDao().getItembyId(34);
        Order order=new Order();
        Customer cus= (Customer) seller.getCustomerDao().getItembyId(41);
        
        Product p=(Product) seller.getProductDao().getItembyId(1);
        order.setTotal(p.getTsena());
        order.setDohod(p.getTsena()-p.getSobivartist());
        order.getProducts().add(p);
        order.setCustomer(cus);
        order.setSeller(sel1);
        order.setId(0);
        order.setDateorder(new Date());
        sel1.getOrder().add(order);
        cus.getOrder().add(order);
        order.setDateorder(new Date());
         p.setSize(p.getSize()-1);
        seller.getProductDao().changeItem(p);
        seller.getOrderDao().addItem(order);
        System.out.println();
        for(Object emp:seller.getProductDao().getAllItem()) {
            Product obj=(Product)emp;
            System.out.println(obj.getFirma());
        }

       System.out.println();
       for(Object emp:seller.getOrderDao().getAllItem()) {
            Order obj=(Order)emp;
            System.out.println(DateFormat.getDateInstance(DateFormat.FULL, DateFormat.getAvailableLocales()[2]).format(obj.getDateorder()));
        }
        System.out.println();
    }

Прога валится при втором запуске с выше указаной ошибкой!!! Перепробовал кажется все начиная от getHibernateTemplate.merge() и заканчивая close() , но ничего не привело к успеху....Я понимаю из-за чего она, я просто беру обьект из базы потом делаю ссылку на дургой обьект а потом сохраняю первый а второй гуляет в кеше дальше и естественно потом этот другой накапливается при каждом запуске, но вот как с этим боротся не понимаю!!!Помогите пожалуйста...Уже два дня убил на эту казалось детскую проблему и всеравно не могу решить!!! Буду очень признателен за помощь!!! 
PM MAIL   Вверх
dobrolub
Дата 23.4.2010, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 4
Всего: 16



1. Emploee -> Employee
2. Попробуй после сохранения этот объект Evict




PM   Вверх
baracuda25
Дата 23.4.2010, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.4.2010

Репутация: нет
Всего: нет



Эммм....Первое исправил smile 
А вот второе не помогло....Я уже когда то пробывал такое(((
У меня есть сомнения на счет CascadeType....может в эту сторону двигатся?
Вот собственно текст консоли с ошибками
Код

Hibernate: select this_.id as id1_1_, this_.bonus as bonus1_1_, this_.entersystem as entersys4_1_1_, this_.name as name1_1_, this_.pass as pass1_1_, this_.rank as rank1_1_, this_.salary as salary1_1_, this_.surname as surname1_1_, this_.emploeetype as emploeet1_1_1_, order2_.seller_id as seller6_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer5_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller6_2_0_, order2_.total as total2_0_ from Emploee this_ left outer join baracuda.order1 order2_ on this_.id=order2_.seller_id
Taranenko

Hibernate: select this_.id as id0_1_, this_.bonus as bonus0_1_, this_.name as name0_1_, this_.surname as surname0_1_, order2_.customer_id as customer5_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer5_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller6_2_0_, order2_.total as total2_0_ from baracuda.customer this_ left outer join baracuda.order1 order2_ on this_.id=order2_.customer_id
Smolyar
Hibernate: select emploee0_.id as id1_1_, emploee0_.bonus as bonus1_1_, emploee0_.entersystem as entersys4_1_1_, emploee0_.name as name1_1_, emploee0_.pass as pass1_1_, emploee0_.rank as rank1_1_, emploee0_.salary as salary1_1_, emploee0_.surname as surname1_1_, emploee0_.emploeetype as emploeet1_1_1_, order1_.seller_id as seller6_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer5_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller6_2_0_, order1_.total as total2_0_ from Emploee emploee0_ left outer join baracuda.order1 order1_ on emploee0_.id=order1_.seller_id where emploee0_.id=?
Hibernate: select customer0_.id as id0_1_, customer0_.bonus as bonus0_1_, customer0_.name as name0_1_, customer0_.surname as surname0_1_, order1_.customer_id as customer5_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer5_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller6_2_0_, order1_.total as total2_0_ from baracuda.customer customer0_ left outer join baracuda.order1 order1_ on customer0_.id=order1_.customer_id where customer0_.id=?
Hibernate: select product0_.ID as ID3_0_, product0_.firma as firma3_0_, product0_.garanty as garanty3_0_, product0_.kategory as kategory3_0_, product0_.name as name3_0_, product0_.postuplenie as postuple6_3_0_, product0_.size as size3_0_, product0_.sobivartist as sobivart8_3_0_, product0_.tsena as tsena3_0_, product0_.type as type3_0_ from baracuda.product product0_ where product0_.ID=?
Hibernate: update baracuda.product set firma=?, garanty=?, kategory=?, name=?, postuplenie=?, size=?, sobivartist=?, tsena=?, type=? where ID=?
Exception in thread "main" org.springframework.orm.hibernate3.HibernateSystemException: a different object with the same identifier value was already associated with the session: [Enity.Order#144]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [Enity.Order#144]
    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:661)
    at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
    at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
    at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:690)
    at DAO.OrderDaoImpl.addItem(OrderDaoImpl.java:28)
    at Main.main(Main.java:68)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [Enity.Order#144]
    at org.hibernate.engine.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:613)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:307)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:246)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:112)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
    at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:534)
    at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:526)
    at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:241)
    at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
    at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
    at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
    at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:319)
    at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:265)
    at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:242)
    at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
    at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
    at org.hibernate.engine.Cascade.cascade(Cascade.java:120)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:380)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:352)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:246)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:112)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
    at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:534)
    at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:526)
    at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:241)
    at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
    at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
    at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
    at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
    at org.hibernate.event.def.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:454)
    at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:288)
    at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
    at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
    at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
    at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:693)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
    ... 9 more

Process finished with exit code 1

А вот так срабатывает merge() 
Код

Hibernate: select this_.id as id1_1_, this_.bonus as bonus1_1_, this_.entersystem as entersys4_1_1_, this_.name as name1_1_, this_.pass as pass1_1_, this_.rank as rank1_1_, this_.salary as salary1_1_, this_.surname as surname1_1_, this_.emploeetype as emploeet1_1_1_, order2_.seller_id as seller5_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer6_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller5_2_0_, order2_.total as total2_0_ from Emploee this_ left outer join baracuda.order1 order2_ on this_.id=order2_.seller_id
Taranenko
Taranenko
Taranenko
Taranenko

Hibernate: select this_.id as id0_1_, this_.bonus as bonus0_1_, this_.name as name0_1_, this_.surname as surname0_1_, order2_.customer_id as customer6_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer6_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller5_2_0_, order2_.total as total2_0_ from baracuda.customer this_ left outer join baracuda.order1 order2_ on this_.id=order2_.customer_id
Smolyar
Smolyar
Smolyar
Smolyar
Hibernate: select emploee0_.id as id1_1_, emploee0_.bonus as bonus1_1_, emploee0_.entersystem as entersys4_1_1_, emploee0_.name as name1_1_, emploee0_.pass as pass1_1_, emploee0_.rank as rank1_1_, emploee0_.salary as salary1_1_, emploee0_.surname as surname1_1_, emploee0_.emploeetype as emploeet1_1_1_, order1_.seller_id as seller5_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer6_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller5_2_0_, order1_.total as total2_0_ from Emploee emploee0_ left outer join baracuda.order1 order1_ on emploee0_.id=order1_.seller_id where emploee0_.id=?
Hibernate: select customer0_.id as id0_1_, customer0_.bonus as bonus0_1_, customer0_.name as name0_1_, customer0_.surname as surname0_1_, order1_.customer_id as customer6_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer6_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller5_2_0_, order1_.total as total2_0_ from baracuda.customer customer0_ left outer join baracuda.order1 order1_ on customer0_.id=order1_.customer_id where customer0_.id=?
Hibernate: select product0_.ID as ID3_0_, product0_.firma as firma3_0_, product0_.garanty as garanty3_0_, product0_.kategory as kategory3_0_, product0_.name as name3_0_, product0_.postuplenie as postuple6_3_0_, product0_.size as size3_0_, product0_.sobivartist as sobivart8_3_0_, product0_.tsena as tsena3_0_, product0_.type as type3_0_ from baracuda.product product0_ where product0_.ID=?
Hibernate: update baracuda.product set firma=?, garanty=?, kategory=?, name=?, postuplenie=?, size=?, sobivartist=?, tsena=?, type=? where ID=?
Hibernate: select customer0_.id as id0_2_, customer0_.bonus as bonus0_2_, customer0_.name as name0_2_, customer0_.surname as surname0_2_, order1_.customer_id as customer6_4_, order1_.id as id4_, order1_.id as id2_0_, order1_.customer_id as customer6_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller5_2_0_, order1_.total as total2_0_, seller2_.id as id1_1_, seller2_.bonus as bonus1_1_, seller2_.entersystem as entersys4_1_1_, seller2_.name as name1_1_, seller2_.pass as pass1_1_, seller2_.rank as rank1_1_, seller2_.salary as salary1_1_, seller2_.surname as surname1_1_ from baracuda.customer customer0_ left outer join baracuda.order1 order1_ on customer0_.id=order1_.customer_id left outer join Emploee seller2_ on order1_.seller_id=seller2_.id where customer0_.id=?
Hibernate: select order0_.seller_id as seller5_1_, order0_.id as id1_, order0_.id as id2_0_, order0_.customer_id as customer6_2_0_, order0_.dateorder as dateorder2_0_, order0_.dohod as dohod2_0_, order0_.seller_id as seller5_2_0_, order0_.total as total2_0_ from baracuda.order1 order0_ where order0_.seller_id=?
Hibernate: select product0_.ID as ID3_0_, product0_.firma as firma3_0_, product0_.garanty as garanty3_0_, product0_.kategory as kategory3_0_, product0_.name as name3_0_, product0_.postuplenie as postuple6_3_0_, product0_.size as size3_0_, product0_.sobivartist as sobivart8_3_0_, product0_.tsena as tsena3_0_, product0_.type as type3_0_ from baracuda.product product0_ where product0_.ID=?
Hibernate: insert into baracuda.order1 (customer_id, dateorder, dohod, seller_id, total) values (?, ?, ?, ?, ?)
Hibernate: insert into baracuda.order1 (customer_id, dateorder, dohod, seller_id, total) values (?, ?, ?, ?, ?)
Hibernate: insert into baracuda.order1 (customer_id, dateorder, dohod, seller_id, total) values (?, ?, ?, ?, ?)
Hibernate: insert into product_seiles (order_id, product_id) values (?, ?)

Hibernate: select this_.ID as ID3_0_, this_.firma as firma3_0_, this_.garanty as garanty3_0_, this_.kategory as kategory3_0_, this_.name as name3_0_, this_.postuplenie as postuple6_3_0_, this_.size as size3_0_, this_.sobivartist as sobivart8_3_0_, this_.tsena as tsena3_0_, this_.type as type3_0_ from baracuda.product this_
Logitech
GeForce
Apple
Apple

Hibernate: select this_.id as id2_0_, this_.customer_id as customer6_2_0_, this_.dateorder as dateorder2_0_, this_.dohod as dohod2_0_, this_.seller_id as seller5_2_0_, this_.total as total2_0_ from baracuda.order1 this_
Friday, April 23, 2010
Friday, April 23, 2010
Friday, April 23, 2010
Friday, April 23, 2010
Friday, April 23, 2010
Friday, April 23, 2010
Friday, April 23, 2010


Process finished with exit code 0


тоесть оно тупо дублирует записи....но как не странно их в базе нету))) Но когда дело и касается всего приложения дак начинаются такие чудеса что хочется бится головой об стенку smile 
PM MAIL   Вверх
dobrolub
Дата 23.4.2010, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 4
Всего: 16



ugh, с детства не люблю хай-бер-нэйт.

Ну в приципе такая ошибка возникает тогда, когда пытаешься сохранить Объкт который в ХБ уже загружен. ХБ находит объект по id и если он загружен, но obj1 != obj2 ( по понятиям Java...) кидается exception... Сволочи, короче.

Я не в курсе использует ли он equals или ==  тут надо пробовать. 

Сделай своим объектам правильный equals, может это поможет. А если нет, то надо разбираться как и почему получилось в памяти два объекта с одним и тем-же id.

ah, equals там уже есть... только он такой навороченный. Зачем такой? Это правильно?

Это сообщение отредактировал(а) dobrolub - 23.4.2010, 09:10
PM   Вверх
baracuda25
Дата 23.4.2010, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.4.2010

Репутация: нет
Всего: нет



Ну equals я сгенерировал с помощью IDEA))) Я бы конечно по проще сделал))  Блин ну такой тупняк, вроди пустышное дело взять с базы двух типов провести тразакцию и все, а сколько гемора...бррр.... Попробую чето еще погуглить, если кто надумает что-нибудь дак пишите, не стесняйтесь))) dobrolub спасибо что проявил инициативу smile

Добавлено через 8 минут и 44 секунды
А вот на счет как получилось два обьекта то я думаю что это все из-за того что 
Код

Seller sel1= (Seller) seller.getEmploeeDao().getItembyId(34);

а в методе getItembyId();
Код

public Object getItembyId(int id) {
        return getHibernateTemplate().get(Emploee.class,id);
    }

Тоесть я делаю ссылку на другой, тоже самое и с Customer.... Но как же без этого обойтись? В тупую копировать все поля, а потом удалять тот обьект что подгрузил?! Как то туповато, да  и зачем тогда это Hibernate? Лучше в тупую jdbc юзать
PM MAIL   Вверх
dobrolub
Дата 23.4.2010, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 4
Всего: 16



на Open JPA нельзя его заменить?

(Я ни то, ни другое не использую, а для mappinga у меня простая библиотека написана: www.jdbcpersistence.org)

Собственно, я и написал её потому что не смог справиться с hibernate. С тех пор я не люблю и его создателя, мистера Кинга. 

Это сообщение отредактировал(а) dobrolub - 23.4.2010, 18:48
PM   Вверх
baracuda25
Дата 23.4.2010, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.4.2010

Репутация: нет
Всего: нет



Как вариант можно попробовать.... На сколько я знаю сходсвтво Hibernate c анотациями и JPA очень большое,так что может чето и получится)))
PM MAIL   Вверх
MaxPayneC
Дата 24.4.2010, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 18.2.2006

Репутация: 3
Всего: 9



Попробуйте организовать работу с сущностями так, чтобы не возникало ситуаций одновременного присутствия двух объектов с одним ид и разным состоянием. Например, я писал фильтр, который открывает/закрывает сессию хибернейт и транзакцию при запросах к веб-серверу (контейнеру сервлетов), правда у меня был стратс, а не спринг, не уверен насколько этот метод подойдет вам и не сделано ли уже это за вас.
PM   Вверх
sergiusmetallicus
Дата 25.4.2010, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 25.4.2010

Репутация: нет
Всего: нет



... У меня была когда-то похожая проблема (different object with the same iden....) во время entity update. Все решилось вызовом метода Session.clear() перед сохранением:

Код

 public void saveEmployer(Employer emp) throws Exception {
        try{
            getSession().clear();
            begin();
            getSession().update(emp);
            commit();
        } catch(HibernateException e){
            rollback();
            throw new Exception(e.getCause().getMessage());
        }
    }


в таком случае все работает.
PM MAIL   Вверх
baracuda25
Дата 26.4.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.4.2010

Репутация: нет
Всего: нет



Ребята в общем все испытал....Максимум чего добился дак это с помощью merge() дублирование записей при чем с геометрической прогрессией smile  Конечно их в БД нету, но при загрузке всех записей они присутствуют.... Хотел бы вас попросить выложить свои примеры работы с Hibernate, а именно сохранение изменение и удаление функции, можно какой то DAO... Буду очень признателен

Добавлено через 1 минуту и 9 секунд
вот мое мыло [email protected]. Буду рад любой информации!!!
PM MAIL   Вверх
baracuda25
Дата 26.4.2010, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.4.2010

Репутация: нет
Всего: нет



В общем только что убрал СascadeType.ALL на СascadeType.MERGE и CAscadeType.PERSISt в обьекте Order и программа начала работать без Exception, но только на удивление странно вот первый вызов:
Код

Hibernate: select this_.id as id1_1_, this_.bonus as bonus1_1_, this_.emploeetype as emploeet1_1_1_, this_.entersystem as entersys4_1_1_, this_.name as name1_1_, this_.pass as pass1_1_, this_.salary as salary1_1_, this_.surname as surname1_1_, order2_.seller_id as seller5_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer6_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller5_2_0_, order2_.total as total2_0_ from Emploee this_ left outer join baracuda.order1 order2_ on this_.id=order2_.seller_id
Taranenko

Hibernate: select this_.id as id0_1_, this_.bonus as bonus0_1_, this_.name as name0_1_, this_.surname as surname0_1_, order2_.customer_id as customer6_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer6_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller5_2_0_, order2_.total as total2_0_ from baracuda.customer this_ left outer join baracuda.order1 order2_ on this_.id=order2_.customer_id
Smolyar
Hibernate: select emploee0_.id as id1_1_, emploee0_.bonus as bonus1_1_, emploee0_.emploeetype as emploeet1_1_1_, emploee0_.entersystem as entersys4_1_1_, emploee0_.name as name1_1_, emploee0_.pass as pass1_1_, emploee0_.salary as salary1_1_, emploee0_.surname as surname1_1_, order1_.seller_id as seller5_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer6_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller5_2_0_, order1_.total as total2_0_ from Emploee emploee0_ left outer join baracuda.order1 order1_ on emploee0_.id=order1_.seller_id where emploee0_.id=?
Hibernate: select customer0_.id as id0_1_, customer0_.bonus as bonus0_1_, customer0_.name as name0_1_, customer0_.surname as surname0_1_, order1_.customer_id as customer6_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer6_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller5_2_0_, order1_.total as total2_0_ from baracuda.customer customer0_ left outer join baracuda.order1 order1_ on customer0_.id=order1_.customer_id where customer0_.id=?
0
Hibernate: select id from baracuda.customer where id =? for update
Hibernate: select id from Emploee where id =? for update
Hibernate: insert into baracuda.order1 (customer_id, dateorder, dohod, seller_id, total) values (?, ?, ?, ?, ?)
Hibernate: insert into product_seiles (order_id, product_id) values (?, ?)
237

Hibernate: select this_.ID as ID3_0_, this_.firma as firma3_0_, this_.garanty as garanty3_0_, this_.kategory as kategory3_0_, this_.name as name3_0_, this_.postuplenie as postuple6_3_0_, this_.size as size3_0_, this_.sobivartist as sobivart8_3_0_, this_.tsena as tsena3_0_, this_.type as type3_0_ from baracuda.product this_
Sumsung

Hibernate: select this_.id as id2_0_, this_.customer_id as customer6_2_0_, this_.dateorder as dateorder2_0_, this_.dohod as dohod2_0_, this_.seller_id as seller5_2_0_, this_.total as total2_0_ from baracuda.order1 this_
Monday, April 26, 2010

Вот второй:
Код

Hibernate: select this_.id as id1_1_, this_.bonus as bonus1_1_, this_.emploeetype as emploeet1_1_1_, this_.entersystem as entersys4_1_1_, this_.name as name1_1_, this_.pass as pass1_1_, this_.salary as salary1_1_, this_.surname as surname1_1_, order2_.seller_id as seller6_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer5_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller6_2_0_, order2_.total as total2_0_ from Emploee this_ left outer join baracuda.order1 order2_ on this_.id=order2_.seller_id
Taranenko

Hibernate: select this_.id as id0_1_, this_.bonus as bonus0_1_, this_.name as name0_1_, this_.surname as surname0_1_, order2_.customer_id as customer5_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer5_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller6_2_0_, order2_.total as total2_0_ from baracuda.customer this_ left outer join baracuda.order1 order2_ on this_.id=order2_.customer_id
Smolyar
Hibernate: select emploee0_.id as id1_1_, emploee0_.bonus as bonus1_1_, emploee0_.emploeetype as emploeet1_1_1_, emploee0_.entersystem as entersys4_1_1_, emploee0_.name as name1_1_, emploee0_.pass as pass1_1_, emploee0_.salary as salary1_1_, emploee0_.surname as surname1_1_, order1_.seller_id as seller6_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer5_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller6_2_0_, order1_.total as total2_0_ from Emploee emploee0_ left outer join baracuda.order1 order1_ on emploee0_.id=order1_.seller_id where emploee0_.id=?
Hibernate: select customer0_.id as id0_1_, customer0_.bonus as bonus0_1_, customer0_.name as name0_1_, customer0_.surname as surname0_1_, order1_.customer_id as customer5_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer5_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller6_2_0_, order1_.total as total2_0_ from baracuda.customer customer0_ left outer join baracuda.order1 order1_ on customer0_.id=order1_.customer_id where customer0_.id=?
0
Hibernate: select id from baracuda.customer where id =? for update
Hibernate: select id from Emploee where id =? for update
Hibernate: insert into baracuda.order1 (customer_id, dateorder, dohod, seller_id, total) values (?, ?, ?, ?, ?)
Hibernate: insert into product_seiles (order_id, product_id) values (?, ?)
238

Hibernate: select this_.ID as ID3_0_, this_.firma as firma3_0_, this_.garanty as garanty3_0_, this_.kategory as kategory3_0_, this_.name as name3_0_, this_.postuplenie as postuple6_3_0_, this_.size as size3_0_, this_.sobivartist as sobivart8_3_0_, this_.tsena as tsena3_0_, this_.type as type3_0_ from baracuda.product this_
Sumsung

Hibernate: select this_.id as id2_0_, this_.customer_id as customer5_2_0_, this_.dateorder as dateorder2_0_, this_.dohod as dohod2_0_, this_.seller_id as seller6_2_0_, this_.total as total2_0_ from baracuda.order1 this_
Monday, April 26, 2010
Monday, April 26, 2010


А вот и самый интересный:
Код

Hibernate: select this_.id as id1_1_, this_.bonus as bonus1_1_, this_.emploeetype as emploeet1_1_1_, this_.entersystem as entersys4_1_1_, this_.name as name1_1_, this_.pass as pass1_1_, this_.salary as salary1_1_, this_.surname as surname1_1_, order2_.seller_id as seller5_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer6_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller5_2_0_, order2_.total as total2_0_ from Emploee this_ left outer join baracuda.order1 order2_ on this_.id=order2_.seller_id
Taranenko
Taranenko

Hibernate: select this_.id as id0_1_, this_.bonus as bonus0_1_, this_.name as name0_1_, this_.surname as surname0_1_, order2_.customer_id as customer6_3_, order2_.id as id3_, order2_.id as id2_0_, order2_.customer_id as customer6_2_0_, order2_.dateorder as dateorder2_0_, order2_.dohod as dohod2_0_, order2_.seller_id as seller5_2_0_, order2_.total as total2_0_ from baracuda.customer this_ left outer join baracuda.order1 order2_ on this_.id=order2_.customer_id
Smolyar
Smolyar
Hibernate: select emploee0_.id as id1_1_, emploee0_.bonus as bonus1_1_, emploee0_.emploeetype as emploeet1_1_1_, emploee0_.entersystem as entersys4_1_1_, emploee0_.name as name1_1_, emploee0_.pass as pass1_1_, emploee0_.salary as salary1_1_, emploee0_.surname as surname1_1_, order1_.seller_id as seller5_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer6_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller5_2_0_, order1_.total as total2_0_ from Emploee emploee0_ left outer join baracuda.order1 order1_ on emploee0_.id=order1_.seller_id where emploee0_.id=?
Hibernate: select customer0_.id as id0_1_, customer0_.bonus as bonus0_1_, customer0_.name as name0_1_, customer0_.surname as surname0_1_, order1_.customer_id as customer6_3_, order1_.id as id3_, order1_.id as id2_0_, order1_.customer_id as customer6_2_0_, order1_.dateorder as dateorder2_0_, order1_.dohod as dohod2_0_, order1_.seller_id as seller5_2_0_, order1_.total as total2_0_ from baracuda.customer customer0_ left outer join baracuda.order1 order1_ on customer0_.id=order1_.customer_id where customer0_.id=?
0
Hibernate: select id from baracuda.customer where id =? for update
Hibernate: select id from Emploee where id =? for update
Hibernate: insert into baracuda.order1 (customer_id, dateorder, dohod, seller_id, total) values (?, ?, ?, ?, ?)
Hibernate: insert into product_seiles (order_id, product_id) values (?, ?)
239

Hibernate: select this_.ID as ID3_0_, this_.firma as firma3_0_, this_.garanty as garanty3_0_, this_.kategory as kategory3_0_, this_.name as name3_0_, this_.postuplenie as postuple6_3_0_, this_.size as size3_0_, this_.sobivartist as sobivart8_3_0_, this_.tsena as tsena3_0_, this_.type as type3_0_ from baracuda.product this_
Sumsung

Hibernate: select this_.id as id2_0_, this_.customer_id as customer6_2_0_, this_.dateorder as dateorder2_0_, this_.dohod as dohod2_0_, this_.seller_id as seller5_2_0_, this_.total as total2_0_ from baracuda.order1 this_
Monday, April 26, 2010
Monday, April 26, 2010
Monday, April 26, 2010

У кого есть какие идеи на счет этого феномена?)

Это сообщение отредактировал(а) baracuda25 - 26.4.2010, 16:18
PM MAIL   Вверх
baracuda25
Дата 29.4.2010, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.4.2010

Репутация: нет
Всего: нет



В общем, кому интересно, дак проблема решилась тем что я убрал двустороннюю связь...Чего то Hibernate не очень хочет с ними коректно рабоать, решил вместо этой связи делать запросы ручка, конечно это не соотведствует ORM, но другого выхода я так и не нашел! Думаю эту тему можно считать закрытой... Всем спасибо за помощь! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1111 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.