Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8057603
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T09:05:05+00:00 2026-06-05T09:05:05+00:00

i have a program that communicates with an existing database. There is a composite

  • 0

i have a program that communicates with an existing database. There is a composite table that has an employee and a vehicle as its composite key. On the edit or add employee page, their is a dropdown box to select which vehicles the employee prefers and then stores the vehicle list in a hashtable in the employee class. However, the list will not persist, or store, in the composite table. I am new to seam and have spent all day trying to figure this out. Any help would be appreciated.

Here are some of my classes:
Employee:

@Entity
@Table(name = "flower_store_employee", schema = "dbo", catalog = "tyler")
public class FlowerStoreEmployee implements java.io.Serializable, Comparable<FlowerStoreEmployee> {

/**
 * 
 */
private static final long serialVersionUID = -1727355085366851150L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "employee_id", unique = true, nullable = false)
private Integer employeeId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "address_id")
private FlowerStoreAddress flowerStoreAddress;
@Column(name = "name_first", length = 25)
@Length(max = 25)
private String nameFirst;
@Column(name = "name_last", length = 25)
@Length(max = 25)
private String nameLast;
@Column(name = "ssn")
private String ssn;
@Column(name = "phone")
private String phone;
@Column(name = "pay")
private int pay;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "flowerStoreEmployee")
private Set<FlowerStoreDelivery> flowerStoreDeliveries = new HashSet<FlowerStoreDelivery>(
        0);
@Cascade({org.hibernate.annotations.CascadeType.ALL })
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "flowerStoreEmployees")
//@JoinTable(name = "flower_store_emp_vehicle", schema = "dbo", catalog = "tyler", joinColumns = { @JoinColumn(name = "vehicle_id", nullable = false, updatable = true) }, inverseJoinColumns = { @JoinColumn(name = "employee_id", nullable = false, updatable = true) })
private Set<FlowerStoreVehicle> flowerStoreVehicles = new HashSet<FlowerStoreVehicle>(
        0);
public FlowerStoreEmployee() {
}

public FlowerStoreEmployee(int employeeId) {
    this.employeeId = employeeId;
}

public FlowerStoreEmployee(FlowerStoreAddress flowerStoreAddress, String nameFirst,
        String nameLast, String ssn, String phone, int pay,
        Set<FlowerStoreDelivery> flowerStoreDeliveries,
        Set<FlowerStoreVehicle> flowerStoreVehicles) {
    this.employeeId = employeeId;
    this.flowerStoreAddress = flowerStoreAddress;
    this.nameFirst = nameFirst;
    this.nameLast = nameLast;
    this.ssn = ssn;
    this.phone = phone;
    this.pay = pay;
    this.flowerStoreDeliveries = flowerStoreDeliveries;
    this.flowerStoreVehicles = flowerStoreVehicles;
}


public int getEmployeeId() {
    return this.employeeId;
}

public void setEmployeeId(int employeeId) {
    this.employeeId = employeeId;
}


public FlowerStoreAddress getFlowerStoreAddress() {
    return this.flowerStoreAddress;
}

public void setFlowerStoreAddress(FlowerStoreAddress flowerStoreAddress) {
    this.flowerStoreAddress = flowerStoreAddress;
}


public String getNameFirst() {
    return this.nameFirst;
}

public void setNameFirst(String nameFirst) {
    this.nameFirst = nameFirst;
}


public String getNameLast() {
    return this.nameLast;
}

public void setNameLast(String nameLast) {
    this.nameLast = nameLast;
}


public String getSsn() {
    return this.ssn;
}

public void setSsn(String ssn) {
    this.ssn = ssn;
}


public String getPhone() {
    return this.phone;
}

public void setPhone(String phone) {
    this.phone = phone;
}


public int getPay() {

    return this.pay;
}

public void setPay(int pay) {
    this.pay = pay;
}

public void setPay(String pay){
    this.pay = Integer.parseInt(pay);
}

public Set<FlowerStoreDelivery> getFlowerStoreDeliveries() {
    return this.flowerStoreDeliveries;
}

public void setFlowerStoreDeliveries(
        Set<FlowerStoreDelivery> flowerStoreDeliveries) {
    this.flowerStoreDeliveries = flowerStoreDeliveries;
}


public Set<FlowerStoreVehicle> getFlowerStoreVehicles() {
    return this.flowerStoreVehicles;
}

public void setFlowerStoreVehicles(
        Set<FlowerStoreVehicle> flowerStoreVehicles) {
    this.flowerStoreVehicles = flowerStoreVehicles;
}

public int compareTo(FlowerStoreEmployee emp) {
    if(this.employeeId > emp.employeeId){
        return 1;
    }
    else 
        if(this.employeeId < emp.employeeId){
                return -1;
        }
    else{
        return 0;
    }
}

Vehicle:

@Entity
@Table(name = "flower_store_vehicle", schema = "dbo", catalog = "tyler")
public class FlowerStoreVehicle implements java.io.Serializable {

/**
 * 
 */
private static final long serialVersionUID = 5349431404739349258L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "vehicle_id", unique = true, nullable = false)
private int vehicleId;
@Column(name = "vin", length = 17)
@Length(max = 17)
private String vin;
@Column(name = "license", length = 10)
@Length(max = 10)
private String license;
@Column(name = "make", length = 15)
@Length(max = 15)
private String make;
@Column(name = "model", length = 20)
@Length(max = 20)
private String model;
@Column(name = "color", length = 20)
@Length(max = 20)
private String color;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "flowerStoreVehicle")
private Set<FlowerStoreDelivery> flowerStoreDeliveries = new HashSet<FlowerStoreDelivery>(
        0);
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "flower_store_emp_vehicle", schema = "dbo", catalog = "tyler", joinColumns = { @JoinColumn(name = "vehicle_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "employee_id", nullable = false, updatable = false) })
private Set<FlowerStoreEmployee> flowerStoreEmployees = new HashSet<FlowerStoreEmployee>(
        0);

public FlowerStoreVehicle() {
}

public FlowerStoreVehicle(int vehicleId) {
    this.vehicleId = vehicleId;
}

public FlowerStoreVehicle(int vehicleId, String vin, String license,
        String make, String model, String color,
        Set<FlowerStoreDelivery> flowerStoreDeliveries,
        Set<FlowerStoreEmployee> flowerStoreEmployees) {
    this.vehicleId = vehicleId;
    this.vin = vin;
    this.license = license;
    this.make = make;
    this.model = model;
    this.color = color;
    this.flowerStoreDeliveries = flowerStoreDeliveries;
    this.flowerStoreEmployees = flowerStoreEmployees;
}

public int getVehicleId() {
    return this.vehicleId;
}

public void setVehicleId(int vehicleId) {
    this.vehicleId = vehicleId;
}

public String getVin() {
    return this.vin;
}

public void setVin(String vin) {
    this.vin = vin;
}

public String getLicense() {
    return this.license;
}

public void setLicense(String license) {
    this.license = license;
}

public String getMake() {
    return this.make;
}

public void setMake(String make) {
    this.make = make;
}

public String getModel() {
    return this.model;
}

public void setModel(String model) {
    this.model = model;
}

public String getColor() {
    return this.color;
}

public void setColor(String color) {
    this.color = color;
}


public Set<FlowerStoreDelivery> getFlowerStoreDeliveries() {
    return this.flowerStoreDeliveries;
}

public void setFlowerStoreDeliveries(
        Set<FlowerStoreDelivery> flowerStoreDeliveries) {
    this.flowerStoreDeliveries = flowerStoreDeliveries;
}

public Set<FlowerStoreEmployee> getFlowerStoreEmployees() {
    return this.flowerStoreEmployees;
}

public void setFlowerStoreEmployees(
        Set<FlowerStoreEmployee> flowerStoreEmployees) {
    this.flowerStoreEmployees = flowerStoreEmployees;
}

}

CompositeTableID:

/**
 * FlowerStoreEmpVehicleId generated by hbm2java
 */
@Embeddable
public class FlowerStoreEmpVehicleId implements java.io.Serializable {

private int vehicleId;
private int employeeId;

public FlowerStoreEmpVehicleId() {
}

public FlowerStoreEmpVehicleId(int vehicleId, int employeeId) {
    this.vehicleId = vehicleId;
    this.employeeId = employeeId;
}

@Column(name = "vehicle_id", nullable = false)
public int getVehicleId() {
    return this.vehicleId;
}

public void setVehicleId(int vehicleId) {
    this.vehicleId = vehicleId;
}

@Column(name = "employee_id", nullable = false)
public int getEmployeeId() {
    return this.employeeId;
}

public void setEmployeeId(int employeeId) {
    this.employeeId = employeeId;
}

public boolean equals(Object other) {
    if ((this == other))
        return true;
    if ((other == null))
        return false;
    if (!(other instanceof FlowerStoreEmpVehicleId))
        return false;
    FlowerStoreEmpVehicleId castOther = (FlowerStoreEmpVehicleId) other;

    return (this.getVehicleId() == castOther.getVehicleId())
            && (this.getEmployeeId() == castOther.getEmployeeId());
}

public int hashCode() {
    int result = 17;

    result = 37 * result + this.getVehicleId();
    result = 37 * result + this.getEmployeeId();
    return result;
}

}

CompositeTable:

@Entity
@Table(name = "flower_store_emp_vehicle", schema = "dbo", catalog = "tyler")
public class FlowerStoreEmpVehicle implements java.io.Serializable {

private FlowerStoreEmpVehicleId id;

public FlowerStoreEmpVehicle() {
}

public FlowerStoreEmpVehicle(FlowerStoreEmpVehicleId id) {
    this.id = id;
}

@EmbeddedId
@AttributeOverrides({
        @AttributeOverride(name = "vehicleId", column = @Column(name = "vehicle_id", nullable = false)),
        @AttributeOverride(name = "employeeId", column = @Column(name = "employee_id", nullable = false)) })
@NotNull
public FlowerStoreEmpVehicleId getId() {
    return this.id;
}

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

}

and here is the code to save the employee:

public String addEmployee(){
    Set<FlowerStoreVehicle> vehicleSet = new HashSet<FlowerStoreVehicle>();
    FlowerStoreEmployee n = new FlowerStoreEmployee();
    if(first!=null && first!=""){
        n.setNameFirst(first);
    }
    if(last!=null && last!=""){
        n.setNameLast(last);
    }
    if(pay!=null && pay!=""){
        int intPay = (int)(Double.parseDouble(pay)*100);
        n.setPay(intPay);
    }
    if(phone!=null && phone!=""){
        n.setPhone(phone);
    }
    if(ssn!=null && ssn!=""){
        n.setSsn(ssn);
    }
    if(vehicle!=null && vehicle!=""){
        String[] vehStr = vehicle.split(" ");
        for(int i = 0; i < vehStr.length; i++){
            int vehId = Integer.parseInt(vehStr[i]);
            vehicleSet.add(entityManager.find(FlowerStoreVehicle.class, vehId));
        }
    }
    if(!vehicleSet.isEmpty()){
        n.setFlowerStoreVehicles(vehicleSet);
    }
    entityManager.persist(n);
    if(zip!=null && zip!=""){
        FlowerStoreZip zipCode = entityManager.find(FlowerStoreZip.class, Integer.parseInt(zip));
        if(zipCode==null){
            zipCode = new FlowerStoreZip();
            if(zip!=null && zip!=""){
                zipCode.setZipCode(Integer.parseInt(zip));
        }
        if(city!=null && city!=""){
            zipCode.setCity(city);
        }
        if(state!=null && city!=""){
            zipCode.setState(state);
        }
        entityManager.persist(zipCode);
        }
    }
    FlowerStoreAddress add = new FlowerStoreAddress();
    if(house!=null && house!=""){
        add.setHouseNumber(Integer.parseInt(house));
    }
    if(street!=null && street!=""){
        add.setStreet(street);
    }
    if(zip!=null && zip!=""){
        add.setFlowerStoreZip(entityManager.find(FlowerStoreZip.class, Integer.parseInt(zip)));
    }
    return "/employee.xhtml";
}

If any more info is needed please let me know. Any help will be greatly appreciated. thank you

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T09:05:06+00:00Added an answer on June 5, 2026 at 9:05 am

    First of all, check your code, you have a lot of buggy instructions: in Java you compare Strings with the equals() method, not like this: ssn != "".

    The root of your problem is not Seam itself but Hibernate. First of all, add elements to the vehicle set via n.getFlowerStoreVehicles().add(...), don’t reassign the entire set with n.setFlowerStoreVehicles(...) (this is probably not a problem during entity creation but becomes a problem when modifying the set after the entities are persisted.

    The reason for the relationship not being correctly persisted is that FlowerStoreEmployee is the “weak” side of the relationship (the one with the “mappedBy” attribute in the annotation). Move the @JoinTable annotation to the FlowerStoreEmployee class and remove it from FlowerStoreVehicle, remove the mappedBy from FlowerStoreEmployee and put it in the FlowerStoreVehicle (mappedBy="flowerStoreVehicles"). Since the relationship is bi-directional, assign to both sides of the relationship:

    FlowerStoreVehicle veh = entityManager.find(FlowerStoreVehicle.class, vehId);
    veh.getFlowerStoreEmployees().add(n); // one direction: vehicle -> employee
    n.getFlowerStoreVehicles().add(veh);  // the other direction: employee -> vehicle
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have program that has a variable that should never change. However, somehow, it
I have a program that reads approximately 2million rows from a database into a
I have a program that communicates via serial port to the target. The target
I have an application that I am writting that communicates with a third-party program
I have a server/client program that communicates with serialized objects. When I run the
I have a program that has Classes GUI Upload and a buffer between the
I have program that sends a file to a printer using 'lpr' command. I
I have program that I want to test on clean Windows installation. For now
I have program that runs fast enough. I want to see the number of
I have a program that accepts a number that represents an array index and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.