Question: I have this 2 classes, and someone told me that I did it wrong.

```
class Employee {
private int employeeID;
private String employeeName;
private Seat employeeSeat;
}

```

This is for my employee class which has a relationship with the Seat class

```
class Seat {
private int seatID;
private String seatCode;
private Employee occupant;
}

```

I also added an employee attribute to my seat because when I retrieve the seat, I want to determine who is the current occupant of the seat. Same thing with my employee, when I retrieve it, I want to determine the employee's current seat. Now, they said that because the employee has a seat attribute, and the seat has an employee attribute, it's a terrible design.

Answer: 
You would have to ask the person that told you it was wrong to explain in detail what they mean. It may or may not be, but that would depend on the overall system architecture and requirements for navigating between objects. 

Likely what they mean is that you should have an `EmployeeSeat` object to hold the relationship and any details pertaining to that relationship (start date, end date, hours, whatever). But then you have to worry about other problems like enforcing cardinality constraints (can an employee have multiple seats, or vice versa)?
Because the risk of updating one side of the relationship at runtime to point to another entity and forgetting to update the other side (leaving the model in an inconsistent state) is generally considered way worse than the slight inconvenience of working with a one-direction association. It's not always possible though.